小编典典

如何获取特定属性的PropertyInfo?

c#

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

foreach(PropertyInfo p in typeof(MyObject).GetProperties())
{
    if ( p.Name == "MyProperty") { return p }
}

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

typeof(MyProperty) as PropertyInfo

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

干杯。


阅读 520

收藏
2020-05-19

共1个答案

小编典典

您可以使用新的nameof()操作符是C#6和可用的一部分在Visual Studio
2015年更多信息在这里

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

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

编译器将转换nameof(MyObject.MyProperty)为字符串“ MyProperty”,但由于Visual
Studio,ReSharper等知道如何重构nameof()值,因此您无需重构就可以重构属性名,从而获得了好处。

2020-05-19