2013-05-29 94 views
0

我試圖序列化/反序列化一些的XAML:異常嘗試反序列化的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'類型的字典添加值引發異常。

內部異常消息是:

「項目已被添加在字典中鍵:‘田’添加鍵:‘域’」

當我檢查序列化的XAML,沒有重複的資源;有一個帶有x:Key =「Field」的Style元素。

回答

0

看起來這是一個known bug的實例。

我懷疑發生了什麼,XamlReader.Load試圖將密鑰添加到您必須在myStackPanel中定義的已經存在的ResourceDictionary中。有可能你的解決方案沒有由Key定義的資源,或者,例如,將資源放在更高級的資源字典中。