我需要引入字段,该值必须与方面修饰的类的其他字段序列化。
这是我的班级:
[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属性标记。
是否有一些方法可以引入参与序列化的字段?
答案 0 :(得分:2)
我需要在MyClass中实现ISerializable接口,或者通过aspect
引入该接口