确定 ExpandoObject 中的对象类型
本文关键字:对象 类型 ExpandoObject 确定 | 更新日期: 2023-09-27 18:31:23
我派生了一个类,它将采用一个XML文件,并为使用ExpandoObjects列表和递归传递的XML动态生成ExpandoObject。
将其传递回以进行处理以检索数据是有效的,但是我从遗留系统中检索的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>>()
这样的东西来返回布尔值或类似性质的东西。
干杯
看起来您可能已经在 Jon Skiet 的帮助下解决了这个问题,但如果您想知道,您可以使用 is
运算符:
if(x.insured is List<ExpandoObject>) {
foreach(dynamic item in x.insured) {
DoSomething(item);
}
} else {
DoSomething(x.insured);
}