これは、PostSharp の使用に関する架空の質問です。
何らかの理由でビルドの PostSharp 部分が欠落した場合、属性は無視され、ビルドされたアセンブリは引き続き実行できると思います。アスペクトでセキュリティを実装した場合、これは大きな問題になります。
ビルドの PostSharp ステージが発生したこと、および自分のアスペクトがアセンブリにあることを実行時に確認するにはどうすればよいですか?
実行時に評価できPostSharp.Post.IsTransformed
ます。アセンブリが変換されている場合、このプロパティの呼び出しは定数のみに変更されtrue
ます。プロパティ自体は常に を返すため、呼び出したアセンブリが変換されfalse
たかどうかを知ることができます。PostSharp.Post.IsTransformed
一方では、ビルド中またはビルド後に出力ウィンドウに表示されます (sth. like : message : PostSharp complete -- 0 errors, 0 warnings, served in 1073 ms
)。一方、.net リフレクターまたは同様のツール (JetBrains dotPeek は無料) を使用してアセンブリを検査できます。ビルド プロセス中の IL コード。
.pdb ファイルの検査などのオプションもあるかもしれません。これで十分ですか?