如何保证postharp代码已被注入?

时间:2012-11-23 10:08:19

标签: c# aop postsharp

这是关于使用PostSharp的假设性问题。

我认为如果由于任何原因遗漏了构建的PostSharp部分,那么属性将被忽略,并且构建的程序集仍然可以运行。如果我使用方面实现安全性,这将是一个大问题。

如何在运行时确认构建的PostSharp阶段发生了以及我的方面是否在程序集中?

2 个答案:

答案 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文件。这是否足以满足您的需求?