我有几种方法使用我在 PostSharp 的帮助下构建的属性。该属性有 3 个构造函数重载,每个重载在调用 OnEntry() 之前执行逻辑。第一次使用我的属性命中方法时,它工作正常。之后,构造函数没有在我的属性中被击中,只有 OnEntry() 正在触发。
每次调用具有该属性的方法时,我都需要调用构造函数。有谁知道这个的解决方案?
提前致谢。
我有几种方法使用我在 PostSharp 的帮助下构建的属性。该属性有 3 个构造函数重载,每个重载在调用 OnEntry() 之前执行逻辑。第一次使用我的属性命中方法时,它工作正常。之后,构造函数没有在我的属性中被击中,只有 OnEntry() 正在触发。
每次调用具有该属性的方法时,我都需要调用构造函数。有谁知道这个的解决方案?
提前致谢。
您可以看到另一个主题,它显示了何时运行构造函数:自定义属性的构造函数何时运行?
Postsharp 在编译之后、执行之前访问那里的属性(这称为后期编译)。调试器可以正常工作,所以你真的可以在构造函数处设置一个断点并查看调用堆栈以观察这个构造函数被调用的位置。
属性构造函数不会在运行时执行。PostSharp 属性也不例外。
我相信你必须重新设计你的方法。我什至对您声称您的构造函数被击中一次感到惊讶。我只是检查它,并且在运行时根本没有命中属性构造函数。