我有一个具有相当多属性的自定义类,当我创建这个类的实例时,我将它添加到隔离存储中,以便以后可以检索它,但是如果我保存了一个,如果我尝试保存另一个得到这个例外:
预计不会使用数据合约名称System.Windows.Media.SolidColorBrush
输入SolidColorBrush(http://schemas.datacontract.org/2004/07/System.Windows.Media)
。将任何静态未知的类型添加到已知类型列表中 - 例如,使用KnownTypeAttribute
属性或将其添加到传递给DataContractSerializer
的已知类型列表中。
我的一个属性是Brush,但是我最初没有在这里设置这个属性,那么为什么只有在我保存第二个实例时才出现异常?
任何帮助都会非常棒,谢谢:)
答案 0 :(得分:3)
您要保存到隔离存储的任何对象(使用IsolatedStorageSettings类)必须使用DataContractSerializer进行序列化。
SolidColorBrush(以及此问题的任何Brush)不是可序列化的市场,所以这就是问题所在!
要解决它,我建议您只保存画笔的颜色(而不是实际的Brush对象),然后检索它并制作一个新的SolicColorBrush对象。