Тема: xml криво серіалізується
прів. я от зара намагаюсь серіалізувати list<myclass>, та іноді воно якось криво зберігається, от вам приклад
<?xml version="1.0" encoding="windows-1251"?>
<ArrayOfMessageBase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MessageBase xsi:type="MessageConnection" type="NONE" state="-1" waitTime="0">
<stopChat>false</stopChat>
<messages />
</MessageBase>
<MessageBase xsi:type="MessageAdmin" type="ADMIN_MESSAGE" changeSide="false" side="true">
<stopChat>false</stopChat>
<messages>
<string>Совсем скоро вы сможете связаться со своим протеже</string>
</messages>
</MessageBase>
</ArrayOfMessageBase>pe="MessageSystem" type="NONE">
<stopChat>false</stopChat>
<messages />
</MessageBase>
</ArrayOfMessageBase>
частину я видалив, тому що вона не має значення.
Як бачите, під кінець трапилась якась фігня
</ArrayOfMessageBase>pe="MessageSystem" type="NONE">
Чому воно таке стається?
От код серіалізації
private void Serialize(string name, Type type, Type[] extraTypes, object obj)
{
try {
var serializer = new XmlSerializer(type, extraTypes);
using (var fs = new FileStream(GetPathSave() + name, FileMode.OpenOrCreate, FileAccess.Write)) {
serializer.Serialize(fs, obj);
}
}
catch(XmlException e)
{
Debug.LogError("serialization exception, " + name+" Message: "+e.Message);
}
catch(System.Exception ex)
{
Debug.LogError("exc while ser file '" + name + "': " + ex.Message);
System.Exception exc = ex.InnerException;
int i = 0;
while (exc != null)
{
Debug.Log("inner " + i + ": " + exc.Message);
i++;
exc = exc.InnerException;
}
}
}