如何在定义类型类中读取属性属性?

时间:2015-06-16 14:05:47

标签: c# reflection properties attributes

假设我有一个如下定义的属性:

[SomeAttriubte("#1")]
public SomeClass Property1 { get; set; }

[SomeAttribute("#2")]
public SomeClass Property2 { get; set; }

SomeClass 定义是这样的:

public class SomeClass
{
     private void PrivateMethod()
     {
           //Some action
     }
}

有没有办法在定义类型类中的 PrivateMethod 中读取 SomeAttribute 参数值?

1 个答案:

答案 0 :(得分:2)

没有。您使用的属性与属性相关联。为了能够访问它们,SomeClass.PrivateMethod()需要知道它所使用的属性的PropertyInfo。但它不能。为了更加“清晰”:一个类型不知道它在哪里“使用”,并且不知道它在哪里使用它,它不能访问连接到“where”它所使用的地方的属性(在同一个地方)它无法访问“使用它的地方”的this的方式