Я получил класс, который будет принимать XML-файл и динамически генерировать ExpandoObject для передаваемого XML при использовании списков ExpandoObjects и рекурсии.Определить тип объекта в 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>>()
, чтобы вернуть bool или что-то в этом роде.
Приветствия
Почему вы не сделать он * всегда * возвращает вам «Список' - только однозначный список, если есть только одна запись? –
При попытке сделать этот код как можно более удобным и динамичным, я считаю, что это осложнит ситуацию, когда этого не происходит. Образец XML, приведенный выше, не отражает сложный характер реального источника. – RobW
В этой проблеме не приводятся репрезентативные примеры :) Но я думаю, что представление * простой * модели, где обращение к имени подэлемента всегда получает последовательность * совпадений, является наиболее последовательным подходом. –