C# 将类实例保存到ApplicationSettings时出现序列化异常

C# 将类实例保存到ApplicationSettings时出现序列化异常,c#,windows-phone-7,C#,Windows Phone 7,我有一个具有许多属性的自定义类,当我创建该类的实例时,我会将其添加到独立存储中,以便以后可以检索该类。但是,一旦我保存了一个类,如果我尝试保存另一个,则会出现以下异常: 键入带有数据协定名称的System.Windows.Media.SolidColorBrush(http://schemas.datacontract.org/2004/07/System.Windows.Media)不是预期的。将任何静态未知的类型添加到已知类型列表中-例如,使用KnownTypeAttribute属性或将它们

我有一个具有许多属性的自定义类,当我创建该类的实例时,我会将其添加到独立存储中,以便以后可以检索该类。但是,一旦我保存了一个类,如果我尝试保存另一个,则会出现以下异常:

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

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


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

要保存到独立存储(使用类)的任何对象都必须使用

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


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

请提供您的代码好吗?无论如何,这个链接可以帮助你我学到了一个艰难的方法,你永远不应该将任何与UI相关的项序列化为UI项-而是将其转换为你自己的中立数据结构并保存它,这样,当您更改UI时,您就不会遇到复杂的问题,您的序列化数据现在已过期。谢谢:)我唯一的问题是,我之所以有brush属性,是因为我有一个列表框,其中显示了我保存的此类的所有实例,因此我不知道如何设置没有该属性的单个列表框项目的颜色将前台属性绑定到我的类实例的color属性。你知道我还有什么方法可以达到这个效果吗?如果你使用绑定,你可以创建一个转换器来将颜色转换成SolidColorBrush!有一个,您可以添加对项目的引用,或只是复制转换器!