按字符串获取属性值

时间:2012-07-09 07:28:58

标签: c#

  

可能重复:
  C# How can I get the value of a string property via Reflection?
  Get property value from string using reflection in C#

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

Class = Setting

设置有2个属性。

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

感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用Reflection来读取属性名称和值。例如,要获取某个类型的公共属性列表,可以使用GetProperties方法:

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 :(得分:1)

你可以使用反射来获取你的类的属性,你可以通过类似的东西来实现这一点。

PropertyInfo[] propertyInfos;
propertyInfos = typeof(MyClass).GetProperties(BindingFlags.Public |
                                              BindingFlags.Static);


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