PostSharp是否在汇编预编译期间添加代码?

时间:2017-08-18 12:54:41

标签: postsharp

使用PostSharp [Log]方面进行汇编时,反编译代码出现时没有添加新代码。 PostSharp是否在预编译期间添加与方面对应的代码?

1 个答案:

答案 0 :(得分:0)

PostSharp通过读取和反汇编中间程序集来处理编译器输出,执行所需的转换和验证,并将最终的程序集重写到磁盘。

PostSharp通过PostSharp.targets在构建过程中集成自身。安装PostSharp nuget包时,NuGet会将PostSharp.targets导入添加到项目中。

让我们考虑一下这个方法:

[Log] public void Method() { }

如果一切正常,那么此方法的反编译C#代码就像这样开始(PostSharp 5.0):

public void Method() { bool flag = <>z__Program.DefaultCategory.IsEnabled(LogLevel.Debug); LogMemberInfo logMemberInfo;

如果您没有看到此代码,则可能表示PostSharp未正确安装到您的项目中,或者未正确配置。

Adding Detailed Logging to your Solution文章介绍了如何正确配置PostSharp并将其添加到项目中。