PostSharp [ログ]アスペクトを使用したアセンブリをデコンパイルすると、デコンパイルされたコードが新しいコードを追加することなく表示されました。 PostSharpは、プリコンパイル中にアスペクトに対応するコードを追加しませんか?PostSharpはアセンブリのプリコンパイル中にコードを追加しますか?
0
A
答えて
0
PostSharpは、中間アセンブリの読み込みと逆アセンブル、必要な変換と検証の実行、および最終アセンブリのディスクへの書き換えによって、コンパイラの出力を後処理します。
PostSharpはPostSharp.targets経由でビルドプロセスに統合されています。ポストシャープナゲットパッケージをインストールすると、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を設定してプロジェクトに追加する方法を説明しています。