我的PostSharp有问题。像这样的代码:
class Program
{
static void Main(string[] args)
{
}
}
interface IA
{
int a { get; set; }
}
[Serializable]
[IntroduceInterface(typeof(IA))]
public class Aaaa : InstanceLevelAspect, IA
{
public int a { get; set; }
}
[Serializable]
[Aaaa]
class B
{
}
使用PostSharp 2.0构建B类,其中Serializable包含来自接口IA的字段。 使用PostSharp 2.1构建后,IA文件不会被序列化。反编译后我得到了那段代码:
[Serializable]
private class B : IA
{
[NonSerialized]
private Aaaa <>__aspect1;
public B()
{
base.\u002Ector();
this.\u003C\u003Ez__InitializeAspects();
}
{...}
}
在2.0版本中,代码几乎完全相同。没有[NonSerialized]属性。有没有什么方法可以让它像2.0一样在2.1上运行?
答案 0 :(得分:0)
这是设计的。 PostSharp 2.0中的行为被认为是错误的,并在2.1中修复。没有办法回到原来的行为。