属性内的访问属性

时间:2012-09-04 18:04:37

标签: c# reflection attributes

我有一个应用了属性的属性。如何从属性getter或setter中访问属性?

class Person {

    [ID("A","B")]
    public Address HomeAddress
    {
        get
        {

            // Get values A and B here ?

        }
        set { }
    }
}

真的不知道怎么做。

此致

2 个答案:

答案 0 :(得分:2)

class Person {

    [ID("A","B")]
    public Address HomeAddress
    {
        get
        {
             System.Attribute[] attrs = System.Attribute.GetCustomAttributes(Person);
             // use attrs[0] to get "A";
             // use attrs[1] to get "B";
        }
        set { }
    }
}

Ps。:我现在没有使用Visual Studio,只是直接写在这里。对不起,如果您发现任何轻微错误。


查看this MSDN article

System.Attribute[] attrs = System.Attribute.GetCustomAttributes(Person);  // Reflection. 

// Displaying output. 
foreach (System.Attribute attr in attrs)
{
     System.Console.WriteLine(attr);
}

答案 1 :(得分:0)

您可以尝试使用此代码

PropertyInfo[] propertyInfo = type.GetProperties();
foreach (var m in propertyInfo )
{                    

      foreach (Attribute a in m.GetCustomAttributes(true))
      {

      }
 }