4

城のインターセプター内のメソッドに適用されたカスタム属性にアクセスしようとしています。

[MyCustomAttribute(SomeParam = "attributeValue")]
public virtual MyEntity Entity { get; set; }

次のコードを使用します。

internal class MyInterceptor : IInterceptor
{
    public void Intercept(IInvocation invocation)
    {
        if (invocation.Method.GetCustomAttributes(typeof(MyCustomAttribute), true) != null)
        {
            //Do something
        }
    }
}

メソッドが呼び出されると、インターセプターは正常に起動しますが、このコードはカスタム属性を返しません。どうすればこれを達成できますか?

4

3 に答える 3

4

Attribute.GetCustomAttribute(...)これには静的な方法を試してください。奇妙なことですが、これら2つの方法では、奇妙な理由で異なる結果が返されることがあります。

于 2010-03-29T16:01:28.243 に答える
1

私はそれを理解したと思います-それはプロパティとメソッドの違いによるものです。インターセプターをトリガーするのは get_ メソッドであり、これは親プロパティの属性で装飾されていません。

于 2010-03-29T17:12:49.000 に答える