Инструменты для сериализации-десериализации

Библиотека ICSSoft.STORMNET.Tools.dll предоставляет различные вспомогательные инструменты для работы, в её классах реализованы функции:

  • сериализации-десериализации,
  • работы с XML,
  • отправки почты,
  • сжатия файлов,
  • обработки подписанных сборок
  • и др..

Данные вспомогательные методы рекомендованы к применению разработчикам.

Инструменты для сериализации-десериализации

При выборе между бинарной и SOAP-сериализацией следует учесть, что бинарный вид сериализации более производительный и результирующие строки получаются короче.

ICSSoft.STORMNET.Tools.ToolXML

ICSSoft.STORMNET.Tools.ToolXML - инструмент для сериализации-десериализации в XML.

Данный класс реализует два варианта преобразований в XML:

  • SOAP сериализация с помощью стандартного System.Runtime.Serialization.Formatters.Soap.SoapFormatter,
  • специально реализованная конвертация объекта данных к XmlDocument, применима только для ICSSoft.STORMNET.DataObject (информация о применении данного варианта доступна в статье).

В классе реализованы следующие методы:

XMLDocument2DataObject

Назначение: Получение объекта данных из ранее полученного XML документа. Данный метод написан специально для ICSSoft.STORMNET.DataObject

Параметры:

  • dataObject - Объект данных, в который будем десериализовывать
  • xmlDoc - Сериализованный объект данных
public static void XMLDocument2DataObject(ref ICSSoft.STORMNET.DataObject dataObject, XmlDocument xmlDoc)

DataObject2XMLDocument

Назначение: Получение XML документа из объекта данных. Данный вид сериализации написан специально для ICSSoft.STORMNET.DataObject и основан на переборе свойств, детейлов и ссылок на мастеров с последующим занесением всего этого в XMLDocument.

Параметры:

  • dataObject - Сам объект данных
  • serializeAggregators - Следует ли сериализовать детейлы
  • setObjectLoadingStateLoaded - Установить LoadingState объекта в Loaded
  • setObjectStatusCreated - Установить ObjectStatus объекта в Created
  • serializeMasters - Проводить полную сериализацию мастеров объектов

Возвращаемый результат: Сериализованное представление объекта

// 1.
public static XmlDocument DataObject2XMLDocument(ref ICSSoft.STORMNET.DataObject dataObject)

// 2.
public static XmlDocument DataObject2XMLDocument(ref ICSSoft.STORMNET.DataObject dataObject, bool serializeAggregators)

// 3.
public static XmlDocument DataObject2XMLDocument(ref ICSSoft.STORMNET.DataObject dataObject, bool serializeAggregators, bool setObjectLoadingStateLoaded, bool setObjectStatusCreated)

// 4.
public static XmlDocument DataObject2XMLDocument(
            ref ICSSoft.STORMNET.DataObject dataObject, 
            bool serializeAggregators,
            bool setObjectLoadingStateLoaded, 
            bool setObjectStatusCreated, 
            bool serializeMasters)

ObjectToString

Назначение: Сериализация объекта при помощи SoapFormatter.

Параметры:

o - Объект для сериализации

Возвращаемый результат: Сериализованный объект

public static string ObjectToString(object o)

ObjectFromString

Назначение: Десериализация объекта при помощи SoapFormatter.

Параметры:

s - Сериализованный объект

Возвращаемый результат: Востановленный объект

public static object ObjectFromString(string s)

ICSSoft.STORMNET.Tools.ToolBinarySerializer

ICSSoft.STORMNET.Tools.ToolBinarySerializer - инструмент для бинарной сериализации-десериализации.

Сериализованные байты конвертируются в ToBase64String. Реализация основана на примененииSystem.Runtime.Serialization.Formatters.Binary.BinaryFormatter.

В классе реализованы следующие методы:

ObjectToString

Назначение: Сериализация объекта при помощи BinaryFormatter.

Параметры:

o - Объект

Возвращаемый результат: Строка.

public static string ObjectToString(object o)

ObjectFromString

Назначение: Десериализация объекта при помощи BinaryFormatter.

Параметры:

  • s - Сериализованный объект
  • binder - Binder, который необходимо указать, если при десереализации необходимо реализовать собственную логику по поиску типов.

Возвращаемый результат: Востановленный объект.

// 1.
public static object ObjectFromString(string s)

// 2.
public static object ObjectFromString(string s, SerializationBinder binder)

ICSSoft.STORMNET.Tools.XmlTools

ICSSoft.STORMNET.Tools.XmlTools - класс для работы с XML.

В классе реализованы следующие методы:

GetXDocumentByXElement

Назначение: Конвертация System.Xml.Linq.XElement в System.Xml.XmlDocument.

Параметры:

  • xElement - xElement для конвертации.
  • versionXmlDoc - Версия создаваемого xml документа.
  • encodingXmlDoc - Кодировка для создаваемого xml документа.

Возвращаемый результат: Результат конвертации - XmlDocument.

public static XmlDocument GetXDocumentByXElement(XElement xElement, string versionXmlDoc, string encodingXmlDoc)

LoadXml

Назначение: Прочитать Xml-файл. Может автоматически определить кодировку на основании кодировки, использующейся внутри Xml.

Параметры:

  • filePath - Путь до Xml-файла.
  • encoding - Кодировка, которую необходимо использовать для чтения Xml-файла.
public static XmlDocument LoadXml(string filePath, Encoding encoding = null)