アセンブリ レベルでMethodDecoratorを使用して fody を使用しようとしています。
サンプル コードで提供されている属性を変更せずに使用しようとしました。
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor |
AttributeTargets.Assembly | AttributeTargets.Module)]
public class InterceptorAttribute : Attribute, IMethodDecorator {
// The code of the implemented methods doesn't matter.
}
[Interceptor]
すべてを使用してメソッドを装飾すると、期待どおりに機能します。
しかし、アセンブリ内のすべてのメソッドをインターセプトしようとします。サンプル コードは、この属性を にターゲティングしますAttributeTargets.Assembly
。これは、これが機能している可能性があることを示しています。
それを行うために、私は自分のプロジェクトに追加[assembly: InterceptorAttribute]
しました。AssemblyInfo.cs
コードはエラーなしでコンパイルされますが、インターセプターは呼び出されません。
を使用しても同じことが起こります[module: Interceptor]
。
これを機能させるにはどうすればよいですか?
アセンブリ/モジュール内のすべてのメソッドをインターセプトする他の方法はありますか?
アップデート
期待どおりに機能するMethodBoundaryAspectを見つけました。