我希望能够根据用户输入的字符串确定选择了哪个类属性,其中字符串是其中一个类属性的名称。
例如
string userInput = "PropertyName";
string newValue = "some value";
MyClass c = new MyClass();
c.PropertyName = newValue;
但我不知道如何通过Name以这种方式找到自定义类的属性。
任何人都可以提出最简洁的方法来实现这一目标。
答案 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);