Я новичок в C# и хотел бы попросить какое-то направление для решения следующей проблемы.Использование Dynamic или Reflection.emit
У меня есть XML-файл, используемый в качестве шаблона (не зная его содержимого заранее). что-то вроде:
<Object>
<Property name="ID">
<Value weight="40">10000</Value>
<Value weight="60">20000</Value>
</Property>
<Property name="Name">
<Value weight="">foo</Value>
<Value weight="">bar</Value>
</Property>
<Property name="Department">
<SubProperty name="Department_ID">
<Value weight="20">D01</Value>
<Value weight="80">D02</Value>
</SubProperty>
<SubProperty name="Location">
<Value weight="30">F01</Value>
<Value weight="70">F02</Value>
</SubProperty>
</Property>
</Object>
Я хотел бы, чтобы прочитать его, сделать некоторые перетасовать, а также экспортировать в новый файл XML. Скажем, произвольно оцените значение каждого свойства в соответствии с их весами (в процентах), чтобы создать новый список объектов, связанных с миром, а затем сериализуйте его в новый XML-файл.
Будет ли это сделано с использованием Reflection.Emit для создания нового «класса» во время выполнения? Или есть какие-то новые функции, такие как DynamicObject of C# 4.0, которые я могу использовать?
Любой комментарий/образец оценили, спасибо!
Спасибо за ваш комментарий. Я попытался LINQ, хотя он работал хорошо, но код будет увеличиваться в одиночку с ростом свойств в шаблоне. Так что я просто задавался вопросом, есть ли какой-то динамичный/надежный способ решить эту проблему, даже если бы я изменил все имена свойств шаблона. thanks – Gnavvy
Мое мышление состояло в том, чтобы использовать первый запрос для данных, чтобы увидеть, что у вас есть, а затем, возможно, создать таблицу поиска имен свойств, которую вы можете использовать для доступа к определенным узлам ... – codekaizen