Сериализация объекта данных в строку XML и десериализация

Для того чтобы сериализовать объект данных необходимо подключить сборку ICSSoft.STORMNET.Tools. Для преобразования в XML предназначен класс ToolXML данной сборки, который поддерживает два варианта сериализации, описанные далее.

Сериализация объектов данных специальным способом

Специальные методы ToolXML для DataObject:

  • DataObject2XMLDocument - конвертация объекта данных к XmlDocument,
  • XMLDocument2DataObject - обратное преобразование.

Есть возможность при сериализации объекта данных сериализовать также и мастера, а не только его тип и первичный ключ, путём передачи соответствующих флагов при вызове метода. Методы DataObject2XMLDocument и XMLDocument2DataObject описаны в статье.

Пример сериализации и десериализации объекта данных.

DataObject sdo = new SimpleDataObject();
((SimpleDataObject)sdo).Name="Simple data object name";
((SimpleDataObject)sdo).IntAttr = 991;

XmlDocument xmldoc = ToolXML.DataObject2XMLDocument(ref sdo);

Console.WriteLine("SimpleDataObject in XML:");
Console.WriteLine(xmldoc.InnerXml);

DataObject sdorestoredfromxml = new SimpleDataObject();
ToolXML.XMLDocument2DataObject(ref sdorestoredfromxml, xmldoc);

Console.WriteLine("Restored SimpleDataObject Name:");
Console.WriteLine( ((SimpleDataObject)sdorestoredfromxml).Name );

Console.Read();

Сериализация на основе SOAP

ToolXML поддерживает метод для SOAP-сериализации. Этот вариант менее привлекателен, поскольку выходная строка содержит много лишней информации и объект данных должен быть помечен атрибутом Serializable

Пример сериализации и десериализации объекта данных.

DataObjectWithKeyGuid dataObjectWithKeyGuid = new DataObjectWithKeyGuid();
KeyGuid g = Guid.NewGuid();
dataObjectWithKeyGuid.LinkToMaster = g;
Console.WriteLine("Записали Guid " + dataObjectWithKeyGuid.LinkToMaster);
var serializedObj = ToolXML.ObjectToString(dataObjectWithKeyGuid);

DataObjectWithKeyGuid dObjFromXML = (DataObjectWithKeyGuid)ToolXML.ObjectFromString(serializedObj);