我有几种方法正在使用我在PostSharp的帮助下构建的属性。该属性有3个构造函数重载,每个重载在调用OnEntry()之前执行逻辑。第一次使用我的属性命中方法时,它可以正常工作。之后,构造函数没有被我的属性命中,只有OnEntry()被触发。
每次调用带有属性的方法时,我都需要调用构造函数。有没有人知道这方面的解决方案?
提前致谢。
答案 0 :(得分:1)
您可以看到另一个主题,它显示运行构造函数的时间:When is a custom attribute's constructor run?
Postsharp在编译后立即访问那些属性,但在执行之前(这称为后编译)。调试器正在为它正常工作,所以你真的可以在构造函数中设置断点并查看调用堆栈以观察这个构造函数被调用的位置。
答案 1 :(得分:0)
属性构造函数不会在运行时执行。 PostSharp属性也不例外。
我相信你必须重新设计你的方法。我甚至很惊讶你声称你的构造函数被击中了一次。我只是检查它,并且在运行时根本没有命中属性构造函数。