1

アセンブリ レベルで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を見つけました。

4

0 に答える 0