关于c#:按字符串获取属性值


Get property value by string

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
C# How can I get the value of a string property via Reflection?
Get property value from string using reflection in C#

当我有一个字符串时,我想将它与我的所有属性名进行比较。有匹配项时,如何返回此属性的值?

class=设置

设置有2个属性。

当我有一个字符串与属性名相同时。如何返回该属性的值?

谢谢。


您可以使用反射来读取属性名和值。例如,要获取类型的公共属性列表,可以使用get properties方法:

1
2
3
4
5
6
var properties = typeof(Setting);
foreach (var prop in properties)
{
    // here you can access the name of the property using prop.Name
    // if you want to access the value you could use the prop.GetValue method
}

您可以使用反射来获取类的属性,您可以通过类似的方法来实现这一点。

1
2
3
4
5
6
7
8
9
10
11
12
PropertyInfo[] propertyInfos;
propertyInfos = typeof(MyClass).GetProperties(BindingFlags.Public |
                                              BindingFlags.Static);


foreach (PropertyInfo propertyInfo in propertyInfos)
{
  if (propertyInfo.Name == yourString)
  {
       return yourString;
  }
}