序列化将类的实例保存到ApplicationSettings时的异常

时间:2012-04-21 23:59:30

标签: c# windows-phone-7

我有一个具有相当多属性的自定义类,当我创建这个类的实例时,我将它添加到隔离存储中,以便以后可以检索它,但是如果我保存了一个,如果我尝试保存另一个得到这个例外:

预计不会使用数据合约名称System.Windows.Media.SolidColorBrush输入SolidColorBrush(http://schemas.datacontract.org/2004/07/System.Windows.Media)。将任何静态未知的类型添加到已知类型列表中 - 例如,使用KnownTypeAttribute属性或将其添加到传递给DataContractSerializer的已知类型列表中。

我的一个属性是Brush,但是我最初没有在这里设置这个属性,那么为什么只有在我保存第二个实例时才出现异常?

任何帮助都会非常棒,谢谢:)

1 个答案:

答案 0 :(得分:3)

您要保存到隔离存储的任何对象(使用IsolatedStorageSettings类)必须使用DataContractSerializer进行序列化。

SolidColorBrush(以及此问题的任何Brush)不是可序列化的市场,所以这就是问题所在!

要解决它,我建议您只保存画笔的颜色(而不是实际的Brush对象),然后检索它并制作一个新的SolicColorBrush对象。