我有这个自定义属性:

[AttributeUsage(AttributeTargets.Method, AllowMultiple=false, Inherited = true)]
class MethodTestingAttibute : Attribute
{
    public string Value{ get; private set; }
    public MethodTestingAttibute (string value)
    {
        this.Value= value;

    }
}

要这样使用:
[MethodTestingAttibute("2")]
public int m1() {return 3; }

我的困难是取MethodTestingAttibute的“2”值
object result = method.Invoke(obj, new Type[] {}); // here i get the return

现在,我想将此结果与MethodTestingAttibute的值进行比较。我怎样才能做到这一点?我正在尝试走这条路,但没有成功:
method.GetCustomAttributes(typeof(MethodTestAttibute), true)[0]...

什么是访问自定义属性字段的正确方法?

最佳答案

var attribute =
   (MethodTestingAttibute)
   typeof (Vehicles)
      .GetMethod("m1")
      .GetCustomAttributes(typeof (MethodTestingAttibute), false).First();
Console.WriteLine(attribute.Value);

关于c# - 访问自定义属性的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6538366/

10-10 15:14