这是关于使用PostSharp的假设性问题。
我认为如果由于任何原因遗漏了构建的PostSharp部分,那么属性将被忽略,并且构建的程序集仍然可以运行。如果我使用方面实现安全性,这将是一个大问题。
如何在运行时确认构建的PostSharp阶段发生了以及我的方面是否在程序集中?
答案 0 :(得分:6)
您可以在运行时评估PostSharp.Post.IsTransformed
。如果已转换程序集,则此属性的调用将更改为常量true
。由于属性本身始终返回false
,因此您可以知道调用PostSharp.Post.IsTransformed
的程序集是否已被转换。
答案 1 :(得分:0)
一方面,您将在构建期间或之后在输出窗口中看到它(例如: message : PostSharp complete -- 0 errors, 0 warnings, served in 1073 ms
),另一方面,您可以使用.net反射器或类似工具检查您的程序集(JetBrains dotPeek是免费的)因此,postharp在构建过程中将你的方面编织在IL代码中。
可能还有更多选项,例如检查.pdb文件。这是否足以满足您的需求?