程序集中的类型未标记为可序列化
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; }
...
}
我有一个 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; }
...
}