Сериализация объектов и десериализация объектов в SOAP. Формат SOAP .
Протокол SOAP (Simple Object Access Protocol) представляет простой протокол для обмена данными между различными платформами. При такой сериализации данные упакуются в конверт SOAP, данные в котором имеют вид xml-подобного документа. Посмотрим на примере. Прежде чем использовать класс SoapFormatter, нам надо добавить в проект сборку System.Runtime.Serialization.Formatters.Soap.dll. После этого нам станет доступным функциональность SoapFormatter: Принцип использования SoapFormatter похож на рассмотренную в прошлой теме бинарную сериализацию. Здесь также создается поток, записывающий данные в файл people.soap. Для сериализации используется метод formatter.Serialize(fs, people), использующий поток и объект для сериализации. При десериализации считываем ранее сохраненные объекты и преобразуем их к нужному нам объекту в методе Deserialize: Person[] newPeople = (Person[])formatter.Deserialize(fs) После сериализации все данные будут сохранены в файл people.soap, который будет иметь следующее содержание: <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <SOAP-ENC:Array SOAP-ENC:arrayType="a1:Person[2]" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/Serialization/Serialization%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull"> <item href="#ref-3"/> <item href="#ref-4"/> </SOAP-ENC:Array> <a1:Person id="ref-3" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/Serialization/Serialization%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull"> <_x003C_Name_x003E_k__BackingField id="ref-5">Tom</_x003C_Name_x003E_k__BackingField> <_x003C_Age_x003E_k__BackingField>29</_x003C_Age_x003E_k__BackingField> </a1:Person> <a1:Person id="ref-4" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/Serialization/Serialization%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull"> <_x003C_Name_x003E_k__BackingField id="ref-6">Bill</_x003C_Name_x003E_k__BackingField> <_x003C_Age_x003E_k__BackingField>25</_x003C_Age_x003E_k__BackingField> </a1:Person> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Шаблоны проектирования. Типы шаблонов проектирования.
Шаблоны проектирования — это руководства по решению повторяющихся проблем. Это не классы, пакеты или библиотеки, которые можно было бы подключить к вашему приложению и сидеть в ожидании чуда. Они скорее являются методиками, как решать определенные проблемы в определенных ситуациях. Википедия описывает их следующим образом: Шаблон проектирования, или паттерн, в разработке программного обеспечения — повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования, в рамках некоторого часто возникающего контекста.
Типы шаблонов Шаблоны бывают следующих трех видов: 1. Порождающие. 2. Структурные. 3. Поведенческие. Если говорить простыми словами, то это шаблоны, которые предназначены для создания экземпляра объекта или группы связанных объектов. Википедия гласит: Порождающие шаблоны — шаблоны проектирования, которые абстрагируют процесс инстанцирования. Они позволяют сделать систему независимой от способа создания, композиции и представления объектов. Шаблон, порождающий классы, использует наследование, чтобы изменять наследуемый класс, а шаблон, порождающий объекты, делегирует инстанцирование другому объекту. Существуют следующие порождающие шаблоны: · простая фабрика (Simple Factory); · фабричный метод (Factory Method); · абстрактная фабрика (Abstract Factory); · строитель (Builder); · прототип (Prototype); · одиночка (Singleton). Простыми словами: Структурные шаблоны в основном связаны с композицией объектов, другими словами, с тем, как сущности могут использовать друг друга. Ещё одним объяснением было бы то, что они помогают ответить на вопрос «Как создать программный компонент?». Википедия гласит: Структурные шаблоны — шаблоны проектирования, в которых рассматривается вопрос о том, как из классов и объектов образуются более крупные структуры. Список структурных шаблонов проектирования: · адаптер (Adapter); · мост (Bridge); · компоновщик (Composite); · декоратор (Decorator); · фасад (Facade); · приспособленец (Flyweight); · заместитель (Proxy). Простыми словами: Поведенческие шаблоны связаны с распределением обязанностей между объектами. Их отличие от структурных шаблонов заключается в том, что они не просто описывают структуру, но также описывают шаблоны для передачи сообщений / связи между ними. Или, другими словами, они помогают ответить на вопрос «Как запустить поведение в программном компоненте?» Википедия гласит: Поведенческие шаблоны — шаблоны проектирования, определяющие алгоритмы и способы реализации взаимодействия различных объектов и классов. Поведенческие шаблоны: · цепочка обязанностей (Chain of Responsibility); · команда (Command); · итератор (Iterator); · посредник (Mediator); · хранитель (Memento); · наблюдатель (Observer); · посетитель (Visitor); · стратегия (Strategy); · состояние (State); · шаблонный метод (Template Method).
Популярное: Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (343)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |