我需要介绍一个字段,该值必须与按方面装饰的类的其他字段进行序列化。

这是我的课:

[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接口,或按方面介绍该接口

09-06 00:24