程序集中的类型未标记为可序列化

Type in assembly is not marked as serializable

我有一个 entityClass 想要作为克隆序列化。但是这个 class 有一个来自自定义框架的参考程序集,我无权访问该代码。每当我尝试序列化 entityClass 对象时,它都会抛出异常

Type ... in Assembly '..., Version=4.1.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.

假设问题是您对象上的 field/property 属于问题类型,您需要将 field/property 标记为 NonSerialized or create a derivative of the type which is marked as Serializable

如果您从类型派生并将其标记为序列化,您很可能必须自己创建序列化逻辑。这需要您实现 ISerializable 和一个采用 SerializationInfo 和 StreamingContext 的序列化构造函数。

This link 可能会有帮助。

如果您有 PropertyChanged 事件,则在所有对象 (类) 中将其设置为 [NonSerialized],您将序列化。

    [field: NonSerialized]
    public event PropertyChangedEventHandler PropertyChanged;

如果出现此错误,请尝试将 Serializable 属性添加到 class。 示例:

   [Serializable]
   public class MyModel 
   {
      public int? ID { get; set; }
      ...
   }