如何获取特定属性的PropertyInfo?

我想获取特定属性的PropertyInfo。我可以使用:

foreach(PropertyInfo p in typeof(MyObject).GetProperties())

{

if ( p.Name == "MyProperty") { return p }

}

但是必须有一种方法可以做类似的事情

typeof(MyProperty) as PropertyInfo

在那儿?还是我坚持进行类型不安全的字符串比较?

干杯。

回答:

您可以使用新的nameof()操作符是C#6和可用的一部分在Visual Studio

2015年更多信息在这里。

对于您的示例,您将使用:

PropertyInfo result = typeof(MyObject).GetProperty(nameof(MyObject.MyProperty));

编译器将转换nameof(MyObject.MyProperty)为字符串“ MyProperty”,但由于Visual

Studio,ReSharper等知道如何重构nameof()值,因此您无需重构就可以重构属性名,从而获得了好处。

以上是 如何获取特定属性的PropertyInfo? 的全部内容, 来源链接: utcz.com/qa/413117.html

回到顶部