【问题标题】:I get this strange error 'System.Windows.Data.ListCollectionView' is not marked as serializable我收到这个奇怪的错误“System.Windows.Data.ListCollectionView”未标记为可序列化
【发布时间】:2012-07-09 22:40:00
【问题描述】:

我有一个克隆类的方法。此类包含子类和属性等。 它是由于 ICollectionView-Property 引起的吗? 如何检测问题出在哪里?我的意思是哪个属性或类没有标记为序列化或什么?很混乱……

错误: 程序集“PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”中的类型“System.Windows.Data.ListCollectionView”未标记为可序列化。

【问题讨论】:

    标签: wpf cloning listcollectionview


    【解决方案1】:

    您正在尝试序列化未标记为 SerializableAttribute 的 .NET Framework 类型。

    您将无法更改它或让它与二进制序列化程序一起使用 - 您需要将该数据存储在您可以序列化的另一种类型中,用NonSerializedAttribute 标记此ListCollectionView,然后在反序列化时您可以手动重新填充它(使用IDeserializationCallback.OnDeserialization)。

    【讨论】:

    • 事实上,我在其他类上做过类似的事情,他们工作得很好,但是对这个有点困惑!
    • 是否可以识别出导致问题的“问题”成员??
    • @Ravi 在您尝试序列化的任何类中,它将是ListViewCollection 类型的成员。因为您无权访问此来源,所以您无法将属性放在此类型上。
    • 我重新检查了整个代码并检查了事件/委托的 [field:nonserialised] 以及类上的 [seriazable] 属性等,但仍然出现此错误!
    • @Ravi 您的类是否派生自另一个类?如MyClass : BaseClass
    猜你喜欢
    • 2013-03-20
    • 2021-11-04
    • 1970-01-01
    • 2017-12-21
    • 2021-10-09
    • 2013-05-13
    • 1970-01-01
    • 2023-03-11
    • 2011-07-05
    相关资源
    最近更新 更多