У меня есть .dll, которая десериализует класс.Когда я называю это .dll из проекта или не используя отражения, он работает нормально.Когда я вызываю .dll с помощью отражения, я получаю сообщение об ошибке в строке, которая десериализуется.Я знаю, что это связано с изоляцией, которая возникает, когда я использую отражение для загрузки сборки.Хотите знать, есть ли у кого-нибудь исправление или идея, как это реализовать?Кстати, сериализация работает просто отлично, просто не работает десериализация.
Я пробовал и двоичный файл, и XML, вот код:
static public object SerializeLoad(string sFilename)
{
try
{
List<ElementTodo> _object = null;//ElementTodo _object = null;
Stream stream = File.Open(sFilename, FileMode.Open);
//BinaryFormatter bformatter = new BinaryFormatter();
XmlSerializer bformatter = new XmlSerializer(typeof(ElementTodo), "ToDo");
//_object = (_object.GetType())bformatter.Deserialize(stream);
_object = (List<ElementTodo>)bformatter.Deserialize(stream);
stream.Close();
return _object;
}
catch(Exception e)
{
string error = e.Message;
return null;
}
}
Сгенерированный XML выглядит следующим образом:
<</p>
?xml version="1.0"?>
<ArrayOfElementTodo xmlns:xsi="w3.org/2001/XMLSchema-instance"; xmlns:xsd="w3.org/2001/XMLSchema"; xmlns="ToDo">
<ElementTodo Title="a" content="aa" isDone="false" />
<ElementTodo Title="b" content="bb" isDone="false" />
<ElementTodo Title="c" content="cc" isDone="false" />
<ElementTodo Title="d" content="dd" isDone="false" />
</ArrayOfElementTodo>