-1

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

例如

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

但我不知道如何以这种方式通过名称定位自定义类的属性。

任何人都可以建议实现这一目标的最简洁的方法。

4

2 回答 2

2

使用反射:

var prop = c.GetType().GetProperty(userInput,BindingFlags.Public | BindingFlags.Instance)
if(prop != null && prop.CanWrite)
{
    prop.SetValue(c,newValue,null);
}
于 2013-11-12T16:07:49.780 回答
0

感谢您提供通过反射设置属性的链接

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

PropertyInfo propertyInfo = c.GetType().GetProperty(userInput);
propertyInfo.SetValue(c, Convert.ChangeType(newValue, propertyInfo.PropertyType), null);
于 2013-11-12T16:24:21.383 回答