यहां एक नमूना सहायक वर्ग है जो किसी ऑब्जेक्ट को परिवर्तित करता है और दिए गए ऑब्जेक्ट के सभी सार्वजनिक गुणों के साथ एक्सपोन्डो देता है।
public static class dynamicHelper
{
public static ExpandoObject convertToExpando(object obj)
{
//Get Properties Using Reflections
BindingFlags flags = BindingFlags.Public | BindingFlags.Instance;
PropertyInfo[] properties = obj.GetType().GetProperties(flags);
//Add Them to a new Expando
ExpandoObject expando = new ExpandoObject();
foreach (PropertyInfo property in properties)
{
AddProperty(expando, property.Name, property.GetValue(obj));
}
return expando;
}
public static void AddProperty(ExpandoObject expando, string propertyName, object propertyValue)
{
//Take use of the IDictionary implementation
var expandoDict = expando as IDictionary;
if (expandoDict.ContainsKey(propertyName))
expandoDict[propertyName] = propertyValue;
else
expandoDict.Add(propertyName, propertyValue);
}
}
उपयोग:
//Create Dynamic Object
dynamic expandoObj= dynamicHelper.convertToExpando(myObject);
//Add Custom Properties
dynamicHelper.AddProperty(expandoObj, "dynamicKey", "Some Value");
की
संभव डुप्लिकेट [जब आप किसी अन्य वैरिएबल के नाम है एक सी # 4 गतिशील वस्तु का एक गुण सेट करने के लिए कैसे] (http://stackoverflow.com/questions/ 3033410/कैसे-से-सेट-ए-प्रॉपर्टी-ऑफ-एसी-तेज -4-गतिशील-ऑब्जेक्ट-जब-आप-नाम-में-ए-ए) – nawfal