【发布时间】:2013-04-23 15:28:49
【问题描述】:
如何在dynamic 对象中公开匿名对象的复杂结构?
匿名对象被标记为internal,所以我正在寻找一种创造性的方法来解决这个问题。
// This is the library I control
public void SendObject() {
var anonymous = new {
Text = "Test",
SubItem = new {
SubText = "Bla",
SubSub = new {
SubSubText = "Baha"
}
}
};
}
dynamic dyn = ExposeAnonymous(anonymous); // Perform voodoo
var result = ExternalLibrary.GetSpecialProperty(dyn);
// External library I don't control
public object GetSpecialProperty(dynamic dyn) {
return dyn.SubItem.SubSub.SubSubText;
}
问题是在将dynamic 发送到其他外部库时,我无法控制,您会收到如下错误:
“对象”不包含“子项”的定义。
【问题讨论】:
-
在这里也可以工作(在将第 4 行的分号替换为
,之后) -
关键部分是“其他库”——当然在 sn-p 中没有展示...
标签: c# dynamic anonymous-types