我正在尝试访问应用于城堡拦截器中的方法的自定义属性,但方法Attribute.GetCustomAttribute()返回null。
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 :(得分:0)
将属性“MyAttribute”放在接口内的方法上,而不是在类
中