【发布时间】:2011-07-05 01:28:00
【问题描述】:
假设我有两个这样的匿名对象:
var objA = new { test = "test", blah = "blah" };
var objB = new { foo = "foo", bar = "bar" };
我想把它们结合起来得到:
new { test = "test", blah = "blah", foo = "foo", bar = "bar" };
在编译时我不知道 objA 和 objB 的属性是什么。 我希望这就像 jquery 的扩展方法。
有人知道可以帮助我做到这一点的库或 .net 框架类吗?
【问题讨论】:
-
你的意思是匿名对象,而不是动态对象?
-
C# 的类型系统与 JavaScript 非常不同。没有“动态对象”这样的东西; C# 中的所有对象都必须是某个类的实例。正如@Mahesh Velaga 所说,您展示的代码创建了匿名对象,编译器将为每个对象创建一个类。如果您事先不知道属性,您将无法在运行时轻松获得相同的效果。正如@StackOverflowException 所说,您必须使用 Reflection.Emit,但这并不是一项完全微不足道的任务。
-
@Aasmund: o rly?
标签: c# anonymous-objects