C# 匿名对象 增加属性
2021-05-18 20:28
标签:stat col code english property ddp color tar data C# 匿名对象 增加属性 标签:stat col code english property ddp color tar data 原文地址:https://www.cnblogs.com/enych/p/11729106.html dynamic data = new System.Dynamic.ExpandoObject();
IDictionarystring, object> dictionary = (IDictionarystring, object>)data;
dictionary.Add("FirstName", "Bob");
dictionary.Add("LastName", "Smith");
dictionary.Add("Arry_01", new Listobject>());
dynamic data1 = new System.Dynamic.ExpandoObject();
((IDictionarystring, object>)data1).Add("AAA","=101");
((IDictionarystring, object>)data1).Add("BBB","=101");
data.Arry_01.Add(data1);
private void button1_Click(object sender, EventArgs e)
{
dynamic expando = new ExpandoObject();
expando.Name = "Brian";
expando.Country = "USA";
// Add properties dynamically to expando
AddProperty(expando, "Language", "English");
// Add a LanguageChanged event and predefined event handler
AddEvent(expando, "LanguageChanged", eventHandler);
} public static void AddProperty(ExpandoObject expando, string propertyName, object propertyValue)
{
//扩展对象支持IDictionary,因此我们可以像这样扩展它
var expandoDict = expando as IDictionarystring, object>;
if (expandoDict.ContainsKey(propertyName)) //是否包含该属性
expandoDict[propertyName] = propertyValue;
else
expandoDict.Add(propertyName, propertyValue);
}
public static void AddEvent(ExpandoObject expando, string eventName, Actionobject, EventArgs> handler)
{
var expandoDict = expando as IDictionarystring, object>;
if (expandoDict.ContainsKey(eventName))
expandoDict[eventName] = handler;
else
expandoDict.Add(eventName, handler);
}
public event Actionobject, EventArgs> eventHandler;
上一篇:C#获取系统字体