匿名类

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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

原文地址:http://www.cnblogs.com/xuejianxiyang/p/4964739.html

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航