2015-07-20 6 views
1

Я пытаюсь получить доступ к настраиваемому атрибуту, примененному к методу внутри перехватчика замка, но метод Attribute.GetCustomAttribute() возвращает значение null.Получить настраиваемый атрибут метода от перехватчика Castle Windsor

public class MyIntecept : Castle.DynamicProxy.IInterceptor 
{ 
    public void Intercept(IInvocation invocation) 
    { 
     // myAttr is null. 
     var myAttr = (MyAttribute)Attribute.GetCustomAttribute(
      invocation.Method, typeof(MyAttribute)); 
    } 
} 

[AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = true)] 
public class MyAttribute : Attribute 
{ 
    readonly string _value; 

    public MyAttribute(string value) 
    { 
     this._value = value; 
    } 

    public string Value 
    { 
     get { return this._value; } 
    } 
} 

public interface IMyInterface 
{ 
    void Do(); 
} 

public class MyClass : IMyInterface 
{ 
    [MyAttribute("MyValue")] 
    public void Do() 
    { 
     Console.WriteLine("Do"); 
    } 
} 

Как я могу получить «MyAttribute»?

P.S. Я использую Castle.Core 3.3.3

ответ

0

Поместите атрибут «MyAttribute» на метод внутри интерфейса, а не внутри класса