У меня проблема с xml-десериализацией и динамически загружаемыми сборками. Я загружаю свою сборку прямо из zip-файла в байтовый массив. Затем я загружаю эту сборку. Сборка содержит модель данных, которую следует десериализовать с помощью XmlSerializer. Проблема в том, что я всегда получаю TypeInitializationException, если пытаюсь загрузить свой XML.
Исключение составляет следующее (на немецком языке):
System.InvalidOperationException: Fehler im XML-Dokument (62,13). --->
System.TypeInitializationException: Der Typeninitialisierer für
"Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOrder" hat eine
Ausnahme verursacht. ---> System.NullReferenceException: Der Objektverweis wurde
nicht auf eine Objektinstanz festgelegt.
bei Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOrder..cctor()
Если я загружу свою dll непосредственно из dll-файла, а не из zip в массив байтов, XML можно будет успешно десериализовать.
В Интернете я обнаружил, что проблема может быть в списках с собственными типами, но решения, которые я там нашел, не решили мою проблему.
ИЗМЕНИТЬ:
Я обнаружил, что не могу использовать общие списки с собственными типами, если я загружаю сборку через массив байтов, как это написано на другом веб-сайте. Я не мог сказать, почему у меня сначала не было успеха с этим решением, но после второй попытки оно работает. Я сделал обходной путь с ArrayList, но я очень недоволен этим. Есть ли лучшее решение, где я могу использовать общие списки? Или, если нет лучшего решения, есть ли лучший сериализатор/десериализатор для XML?