Postsharp:它是如何工作的?

根据我的另一个问题的建议,我转换了引用的代码用于PostSharp:

属性:

[Serializable] public sealed class InitAttribute : OnMethodBoundaryAspect { public override void OnEntry(MethodExecutionEventArgs eventArgs) { Console.Write("Works!"); } } static class Logger { public static string _severity; public static void Init(string severity) { _severity = severity; } [Init()] public static void p() { Console.WriteLine(_severity); } } 

尽管如此,我无法获得任何结果(控制台上的“Works!”)。 PostSharp属性中的断点显示永远不会输入。

任何帮助? 提前致谢。

PostSharp处理已编译的IL二进制文件,并将您想要的操作添加到使用该属性修饰的方法 。 该属性本身不会做任何事情。 这就是CLR的工作方式。 它只是将属性视为数据 ,而不是可执行代码。 如果不在编译的代码上运行PostSharp ,就不会有任何特殊之处。

您不需要执行PostSharp命令行实用程序,但需要正确安装。

最简单的方法是使用安装程序安装PostSharp。

否则,您应该使用文档编辑器编辑项目文件,如文档中所述 。