C# 匿名对象 增加属性
2024-08-27 14:17:49
dynamic data = new System.Dynamic.ExpandoObject();
IDictionary<string, object> dictionary = (IDictionary<string, object>)data;
dictionary.Add("FirstName", "Bob");
dictionary.Add("LastName", "Smith");
dictionary.Add("Arry_01", new List<object>());
dynamic data1 = new System.Dynamic.ExpandoObject();
((IDictionary<string, object>)data1).Add("AAA","=101");
((IDictionary<string, 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 IDictionary<string, object>;
if (expandoDict.ContainsKey(propertyName)) //是否包含该属性
expandoDict[propertyName] = propertyValue;
else
expandoDict.Add(propertyName, propertyValue);
} public static void AddEvent(ExpandoObject expando, string eventName, Action<object, EventArgs> handler)
{
var expandoDict = expando as IDictionary<string, object>;
if (expandoDict.ContainsKey(eventName))
expandoDict[eventName] = handler;
else
expandoDict.Add(eventName, handler);
}
public event Action<object, EventArgs> eventHandler;
最新文章
- ionic之$ionicGesture手势(大坑)
- qq空间返回顶部代码
- HDU2203 亲和串
- Android学习笔记——Button
- WebApp之Meta标签
- ubuntu13.04 nfs配置
- JDBC连接SQL Server2008
- tiny4412的中断资源连接关系示意图
- czxt
- Python遍历文件夹枚举所有文件类型
- JavaScript学习总结二(Date对象的用法)
- BZOJ 1733: [Usaco2005 feb]Secret Milking Machine 神秘的挤奶机
- hdu find the safest road
- 递推计数-hdu-4747-Mex
- 基于Asterisk的VoIP开发指南——(1)实现基本呼叫功能
- Delphi获取其它进程窗口句柄的3种方法
- 匹配PC和移动端
- ASE加密
- [bzoj3287] Mato的刷屏计划
- card card card HDU - 6205