标签:mic ldl 不可 img bar click json src serial
原文:c# dynamic动态类型和匿名类
dynamic类型
简单示例
dynamic expando = new System.Dynamic.ExpandoObject(); //动态类型字段 可读可写 expando.Id = 1; expando.Name = "Test"; string json = Utils.ConvertJson.JsonEncode(expando); //输出{Id:1,Name:‘Test‘}
动态添加字段
List<string> fieldList = new List<string>() { "Name","Age","Sex"}; //From config or db dynamic dobj = new System.Dynamic.ExpandoObject(); var dic = (IDictionary<string, object>)dobj; foreach (var fieldItem in fieldList) { dic[fieldItem] = "set "+fieldItem+" value"; /*实现类似js里的 动态添加属性的功能 var obj={}; var field="Id"; eval("obj."+field+"=1"); alert(obj.Id); //1 */ } var val = dobj.Name; //“set Name value” var val1=dobj.Age;//”set Age value“
枚举该对象所有成员
foreach (var fieldItem in (IDictionary<String, Object>)dobj) { var v = (fieldItem.Key + ": " + fieldItem.Value); } 匿名类 //var aaaa = new {Id=1,Name="Test"}; //匿名类字段只读不可写 dynamic aaaa = new {Id=1,Name="Test"}; //匿名类字段只读不可写 aaaa.Id = 2; //不可写 报错无法为属性或索引器“<>f__AnonymousType1<int>.Id”赋值 - 它是只读的 dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject("{Name:‘aa‘,Sex:‘Male‘,Age:11}"); var name = obj.Name.Value; //aa
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击文章下方“推荐”按钮【精神支持】,您的“推荐”将是我最大的写作动力!
欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!
标签:mic ldl 不可 img bar click json src serial
原文地址:https://www.cnblogs.com/lonelyxmas/p/12065762.html