我发布了一个post build任务,它使用Mono.Cecil
在一些自定义字段上注入NonSerializedAttribute
以进行二进制序列化。使用ILSpy
工具我看到该属性被注入,但是当我运行应用程序时,我得到SerializationException
,其中包含该属性的类型未标记为serialiazable的信息,这是正确的,但这是正确的。为什么我注入了NonSerializedAttribute
。
小代码插图:
public class NonSerializableType
{
....
}
[Serializable]
public class SerializableType
{
private NonSerializableType _data;
public NonSerializableType Data
{
get { return _data; }
set { _data = value; }
}
}
注入后,我可以在NonSerializedAttribute
字段上看到_data
(使用ILSpy
),但它在运行时无效。有什么想法吗?