+ -
当前位置:首页 → 问答吧 → 请资深高级程序员进来说话,一个绝对有难度的问题(关于匿名对象)!!!!!

请资深高级程序员进来说话,一个绝对有难度的问题(关于匿名对象)!!!!!

时间:2011-12-14

来源:互联网

我要实现这样一个功能,请问大牛们这该如何实现??

条件:
string a="id";
string b="name";

要得到的匿名对象:
var v1=new {id=1,name="张三"};

---------------------------
即要把一个字符串的值放到匿名对象的属性中,从而构造一个这样的匿名对象。请问该如何实现,比如用反射、DynamicMethod等是否能够实现??非常感谢!!!!!

作者: zhuawang   发布时间: 2011-12-14

匿名对象的本质是C#编译器玩的魔术,实际上,从IL角度看,匿名对象是有名字的。

你可以做一个试验:
C# code
var anonymousobj = new { id = 1, name = "张三" };
Console.WriteLine(anonymousobj.GetType());


你的这个需求有2个解决的办法,一个是使用动态 ExpandoObject,另一个是元编程,目前C#还不支持,但是可以用动态编译来解决。

作者: caozhy   发布时间: 2011-12-14

你可以参考
http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx
以及
http://msdn.microsoft.com/en-us/library/dd630214.aspx 这个连接说明了你如何添加属性,实际上它内部是一个字典,字典的key是属性名。

作者: caozhy   发布时间: 2011-12-14

热门下载

更多