1

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

System.Windows.Media.SolidColorBrush不需要带有数据合同名称的类型SolidColorBrush(http://schemas.datacontract.org/2004/07/System.Windows.Media)。将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用KnownTypeAttribute属性或将它们添加到传递给的已知类型列表中DataContractSerializer

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

任何帮助都会非常感谢:)

4

1 回答 1

3

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

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

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

于 2012-04-22T11:58:54.690 回答