我需要介绍一个字段,该值必须与按方面装饰的类的其他字段进行序列化。
这是我的课:
[Serializable]
[MyAspect(1)]
public MyClass
{
public int IntField = 0;
}
这是我的方面:
[Serializable]
public class MyAspect: InstanceLevelAspect
{
private int _aspectField;
public MyAspect(int aspectField)
{
_aspectField = aspectField;
}
[IntroduceMember]
public int IntroducedProperty { get; set; }
}
在对dll进行反编译之后,我看到IntroducedProperty已添加到MyClass定义中,但是它将所有调用委派给MyAspect.IntroducedProperty,从而委托给它的后备字段。
因此,序列化在MyClass中看不到任何与IntroducedProperty相对应的字段。
另外,PostSharp会在MyClass中生成MyAspect类型的字段,该字段由NonSerializable属性标记。
是否有一些方法可以引入字段,从而可以参与序列化?
最佳答案
在这里解决:http://support.sharpcrafters.com/discussions/questions/742-how-to-introduce-property-for-serialization
我需要在MyClass中实现ISerializable接口,或按方面介绍该接口