从字符串中按名称查找类属性

时间:2013-11-12 16:04:57

标签: c#

我希望能够根据用户输入的字符串确定选择了哪个类属性,其中字符串是其中一个类属性的名称。

例如

string userInput = "PropertyName";
string newValue = "some value";
MyClass c = new MyClass();
c.PropertyName = newValue;

但我不知道如何通过Name以这种方式找到自定义类的属性。

任何人都可以提出最简洁的方法来实现这一目标。

2 个答案:

答案 0 :(得分:2)

使用反射:

var prop = c.GetType().GetProperty(userInput,BindingFlags.Public | BindingFlags.Instance)
if(prop != null && prop.CanWrite)
{
    prop.SetValue(c,newValue,null);
}

答案 1 :(得分:0)

感谢您通过反思设置房产的链接

我能够使用以下内容来实现我的目标

PropertyInfo propertyInfo = c.GetType().GetProperty(userInput);
propertyInfo.SetValue(c, Convert.ChangeType(newValue, propertyInfo.PropertyType), null);