Библиотека 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 объекта в LoadedsetObjectStatusCreated
- Установить ObjectStatus объекта в CreatedserializeMasters
- Проводить полную сериализацию мастеров объектов
Возвращаемый результат: Сериализованное представление объекта
// 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)