V
Vitone
У меня такая проблемма. Существует иеархия классов, при чем базовый класс и большое множество производных от него классов раскиданы по разным dll-кам (в одной - сколько угодно производных классов). И мне необходимо сохранять состояние классов (использую SOAP сериализацию). Так вот, если эти dll-ки подключаю статически, то все нормально, но когда динамически - возникает ошибка при попытке десериализировать, при чем на этапе разбора элементов XML файла.
Сериализация:
[codebox] SoapFormatter formatter = new SoapFormatter();
FileStream stream = File.Open(fileName, FileMode.Create);
FbdProgram tmp=new FbdProgram();
formatter.Serialize(stream, tmp);
stream.Close();
[/codebox]
Десериализация:
[codebox] Stream stream = File.Open(fileName, FileMode.Open);
SoapFormatter formatter = new SoapFormatter();
FbdProgram tmp=new FbdProgram();
tmp = (FbdProgram)formatter.Deserialize(stream);
stream.Close();
[/codebox]
Фрагмент сохраненного XML файла:
<a2:MUL_INT id="ref-10" xmlns:a2="http://schemas.microsoft.com/clr/nsassem/FBDVisualBlocks.VisualBlocks/FBDVisualBlocks%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Db98b95bcb02affd6">
Ошибка происходит при десериализации на строчке:
tmp = (FbdProgram)formatter.Deserialize(stream);
При этом она имеет следующий вид:
An unhandled exception of type 'System.Runtime.Serialization.SerializationException' occurred in System.Runtime.Serialization.Formatters.Soap.dll
Additional information: Parse Error, no assembly associated with Xml key a2:http://schemas.microsoft.com/clr/nsassem/FBDVisualBlocks.VisualBlocks/FBDVisualBlocks%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Db98b95bcb02affd6 MUL_INT
Большое спасибо!
Сериализация:
[codebox] SoapFormatter formatter = new SoapFormatter();
FileStream stream = File.Open(fileName, FileMode.Create);
FbdProgram tmp=new FbdProgram();
formatter.Serialize(stream, tmp);
stream.Close();
[/codebox]
Десериализация:
[codebox] Stream stream = File.Open(fileName, FileMode.Open);
SoapFormatter formatter = new SoapFormatter();
FbdProgram tmp=new FbdProgram();
tmp = (FbdProgram)formatter.Deserialize(stream);
stream.Close();
[/codebox]
Фрагмент сохраненного XML файла:
<a2:MUL_INT id="ref-10" xmlns:a2="http://schemas.microsoft.com/clr/nsassem/FBDVisualBlocks.VisualBlocks/FBDVisualBlocks%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Db98b95bcb02affd6">
Ошибка происходит при десериализации на строчке:
tmp = (FbdProgram)formatter.Deserialize(stream);
При этом она имеет следующий вид:
An unhandled exception of type 'System.Runtime.Serialization.SerializationException' occurred in System.Runtime.Serialization.Formatters.Soap.dll
Additional information: Parse Error, no assembly associated with Xml key a2:http://schemas.microsoft.com/clr/nsassem/FBDVisualBlocks.VisualBlocks/FBDVisualBlocks%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Db98b95bcb02affd6 MUL_INT
Большое спасибо!