访问get访问器中的属性属性

时间:2010-08-20 00:14:17

标签: c# .net custom-attributes

我为我的属性创建了一个自定义属性,并且想知道是否有人知道如何访问get访问器内部的Attribute值。

public class MyClass
{
    [Guid("{2017ECDA-2B1B-45A9-A321-49EA70943F6D}")]
    public string MyProperty
    {
        get { return "value loaded from guid"; }
    }
}

2 个答案:

答案 0 :(得分:1)

撇开这种事情的智慧......

public string MyProperty
{
    get
    {
        return this.GetType().GetProperty("MyProperty").GetCustomAttributes(typeof(GuidAttribute), true).OfType<GuidAttribute>().First().Value;
    }
}

答案 1 :(得分:0)

您可以通过反射检索属性,然后检索其自定义属性,如下所示:

// Get the property
var property = typeof(MyClass).GetProperty("MyProperty");

// Get the attributes of type “GuidAttribute”
var attributes = property.GetCustomAttributes(typeof(GuidAttribute), true);

// If there is an attribute of that type, return its value
if (attributes.Length > 0)
    return ((GuidAttribute) attributes[0]).Value;

// Otherwise, we’re out of luck!
return null;