我派生了一个类,它将采用 XML 文件并动态生成 ExpandoObject,以便利用 ExpandoObjects 列表和递归传递 XML。
将其传回进行处理以检索数据是可行的,但我从遗留系统检索的 XML 不一致。我可以这样取回单个节点
<test>
<insured>
<a>BLAH BLAH BLAH</a>
<b>BLAH BLAH BLAH</b>
<c>BLAH BLAH BLAH</c>
</insured>
</test>
或
<test>
<insured>
<a>BLAH BLAH BLAH</a>
<b>BLAH BLAH BLAH</b>
<c>BLAH BLAH BLAH</c>
</insured>
<insured>
<a>BLAH BLAH BLAH</a>
<b>BLAH BLAH BLAH</b>
<c>BLAH BLAH BLAH</c>
</insured>
<insured>
<a>BLAH BLAH BLAH</a>
<b>BLAH BLAH BLAH</b>
<c>BLAH BLAH BLAH</c>
</insured>
</test>
因此,对于关键的“被保险人”,我要么得到 ExpandoObject
或List<ExpandoObject>
。我正在尝试确定最简单的解决方案来确定返回的类型。
理想情况下就像 x.insured.OfType<List<ExpandoObject>>()
返回一个 bool 或类似的东西。
干杯
最佳答案
看起来您可能已经在 Jon Skeet 的帮助下解决了这个问题,但如果您想知道,您可以使用 is
运算符来解决此问题:
if(x.insured is List<ExpandoObject>) {
foreach(dynamic item in x.insured) {
DoSomething(item);
}
} else {
DoSomething(x.insured);
}
关于c# - 确定 ExpandoObject 中的对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10179641/