【发布时间】:2012-03-13 08:31:15
【问题描述】:
当我只有属性的字符串名称时,如何使用反射设置类的静态属性?例如我有:
List<KeyValuePair<string, object>> _lObjects = GetObjectsList();
foreach(KeyValuePair<string, object> _pair in _lObjects)
{
//class have this static property name stored in _pair.Key
Class1.[_pair.Key] = (cast using typeof (_pair.Value))_pair.Value;
}
我不知道应该如何使用属性名称字符串设置属性的值。一切都是动态的。我可以使用列表中的 5 个项目设置一个类的 5 个静态属性,每个项目都有不同的类型。
感谢您的帮助。
答案:
Type _type = Type.GetType("Namespace.AnotherNamespace.ClassName");
PropertyInfo _propertyInfo = _type.GetProperty("Field1");
_propertyInfo.SetValue(_type, _newValue, null);
【问题讨论】:
标签: c#