Я работаю с XML Deserialization в C#, используя частичный класс для картирования структуры XML. Этот класс генерируется и поддерживается отдельно, поэтому я не могу изменить ее существующую структуру. Я хочу захватить или обработать эти дополнительные поля без изменения существующего частичного класса или влиять на его текущую структуру.
Существует ли способ расширить процесс десериализации (например, использование событий, классов расширения или других механизмов), чтобы я мог справиться с неизвестным содержанием XML? /> Я работаю над тем, чтобы дюреализация XML -файла в модель C# с использованием XMLSerializer. XML выглядит так: < /p>
TEST
TEST
test
test
< /code>
Я определил частичный класс для известных областей, таких как известный атрибут, но я также хочу захватить неизвестные элементы (например, неизвестный атрибут) во время десериализации. < /p>
deserializedModel = XmlHelper.Deserialize(filePath.ToString());
< /code>
Мой пользовательский класс Xmlhelper использует xmlserializer.unknownelement и отражение для захвата неизвестных элементов XML и хранить их в списке. Тем не менее, десериализованная модель не сохраняет и не выявляет эти неизвестные элементы, и я не могу «добавить» или связывать их обратно к модели или ее детям. < /P>
`serializer.UnknownElement += (s, e) =>
{
UnknownElements.Add(new UnknownElementInfo
{
ElementName = e.Element.Name,
ElementValue = e.Element.InnerText,
ParentType = e.ObjectBeingDeserialized?.GetType().Name,
ParentId = e.ObjectBeingDeserialized?.GetType().GetProperty("Id")?.GetValue(e.ObjectBeingDeserialized)?.ToString()
});
};
`
< /code>
Что я попробовал:
Сбор неизвестных элементов через обработчики событий < /p>
Попытка отразить и «добавить» неизвестные данные обратно в десериализованную модель < /p>
то, что я хочу:
- способ захватить и ассоциировать неизвестные элементы XML (включая их родители). /> В идеале они могут быть обнаружены в чем -то вроде дополнительных элементов или словаря ExtensionData на объект. Есть ли чистый способ расширить модель, чтобы поддержать это, или мне нужно вручную ходить и исправить график объекта постмеализации?
Подробнее здесь: https://stackoverflow.com/questions/795 ... on-using-a
Как обрабатывать неизвестные элементы и атрибуты XML во время десериализации с использованием частичного класса? [дублир ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение