【问题标题】:Exception attempting to deserialize Xaml尝试反序列化 Xaml 的异常
【发布时间】:2013-05-29 23:35:23
【问题描述】:

我正在尝试使用这个简单的代码序列化/反序列化一些 Xaml:

object clone;
using ( var stream = new MemoryStream() )
{
  System.Windows.Markup.XamlWriter.Save( myStackPanel, stream );
  stream.Seek( 0, SeekOrigin.Begin );
  clone = System.Windows.Markup.XamlReader.Load( stream );
}

实际的 Xaml 很好,因为它已经呈现到 UI。当我尝试反序列化一个完全有效的 StackPanel 时,它会抛出 XamlParseException:

“向'System.Windows.ResourceDictionary'类型的字典添加值引发异常。”

内部异常消息是:

"项目已添加。字典中的键:'Field' 正在添加的键:'Field'"

当我检查序列化的 Xaml 时,没有重复的资源;有一个带有 x:Key="Field" 的 Style 元素。

【问题讨论】:

    标签: wpf xaml serialization


    【解决方案1】:

    看起来这是known bug的一个实例。

    我怀疑发生的事情是 XamlReader.Load 正在尝试将密钥添加到您必须在 myStackPanel 中定义的已经存在的 ResourceDictionary。您可能有一个没有 Key 定义的资源的解决方法,或者,例如,将资源放在某个更高级别的资源字典中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多