私はXMLファイルを受け取り、ExpandoObjectsと再帰のリストを利用して渡されるXMLに対してExpandoObjectを動的に生成するクラスを派生しました。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>>()
のようなもので、その性質のブールなどを返すことができます。
乾杯
をそれは常に 'List'を返します - エントリが1つだけの場合は単一値のリストですか? –
このコードを可能な限り動的に再利用できるようにしようとして、これが発生しない場所では複雑になると感じています。上記のサンプルXMLは、実際のソースの複雑な性質を反映していません。 – RobW
これは代表的な例を挙げないと問題です:)しかし、サブ要素名を参照すると常に一致のシーケンス*が得られる*シンプルなモデルを提示するのが最も一貫したアプローチだと思います。 –