संभव डुप्लिकेट:
Can I set a property value with Reflection?सेट संपत्ति के मूल्य संपत्ति का उपयोग कर नाम
मैं कैसे प्रतिबिंब का उपयोग कर जब मैं केवल संपत्ति के अपने स्ट्रिंग नाम है एक वर्ग के एक स्थिर गुण सेट करते हैं? उदाहरण के लिए मेरे पास है:
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);