Симон Робинсон - C# для профессионалов. Том II

Здесь есть возможность читать онлайн «Симон Робинсон - C# для профессионалов. Том II» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2003, ISBN: 2003, Издательство: Лори, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

C# для профессионалов. Том II: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «C# для профессионалов. Том II»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

C# для профессионалов
Для кого предназначена эта книга
Основные темы книги Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.
В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.
Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.
• Все особенности языка C#
• C# и объектно-ориентированное программирование
• Приложения и службы Windows
• Создание web-страниц и web-служб с помощью ASP NET
• Сборки .NET
• Доступ к данным при помощи ADO NET
• Создание распределённых приложений с помощью NET Remoting
• Интеграция с COM, COM+ и службой Active Directory

C# для профессионалов. Том II — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «C# для профессионалов. Том II», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

attrs.XmlElements.Add(new XmlElementAttribute("Product", typeof(Product)));

XmlAttributeOverrides attrOver=new XmlAttributeOverrides();

//добавить к коллекций атрибутов

attrOver.Add(typeof(Inventory), "InventoryItems", attrs);

// создать объекты Product и Book

Product newProd=new Product();

BookProduct newBook=new BookProduct();

newProd.ProductID=100;

newProd.ProductName="Product Thing";

newProd.SupplierID=10;

newBook.ProductID=101;

newBook.ProductName="How to Use Your New Product Thing";

newBook.SupplierID=10;

newBook.ISBN="123456789";

Product[] addProd={newProd, newBook};

//Product[] addProd={newBook};

Inventory inv=new Inventory();

inv.InventoryItems=addProd;

TextWriter tr=new StreamWriter("..\\..\\..\\inventory.xml");

XmlSerializer sr=new XmlSerializer(typeof(Inventory), attrOver);

sr.Serialize(tr, inv);

tr.Close();

}

private void button2_Click(object sender, System.EventArgs e) {

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

// создаем новую коллекцию XmlAttributes

XmlAttributes attrs=new XmlAttributes();

// добавляем информацию о типе к коллекции элементов

attrs.XmlElements.Add(new XmlElementAttribute("Book", typeof(BookProduct)));

attrs.XmlElements.Add(new XmlElementAttribute("Product", typeof(Product)));

XmlAttributeOverrides attrOver=new XmlAttributeOverrides();

//добавляем к коллекции Attributes (атрибутов)

attrOver.Add(typeof(Inventory), "InventoryItems", attrs);

//нужен новый объект Inventory для десериализаций в него

Inventory newInv;

// десериализуем и загружаем данные в окно списка из

// десериализованного объекта

FileStream f=new FileStream("..\\..\\..\\inventory.xml", FileMode.Open);

XmlSerializer newSr=new XmlSerializer(typeof(Inventory).attrOver);

newInv=(Inventory)newSr.Deserialize(f);

if (newInv!=null) {

foreach(Product prod in newInv.InventoryItems) listBox1.Items.Add(prod.ProductName);

}

f.Close();

}

// это те же классы, что и в предыдущем примере

// за исключением удаленных атрибутов

// из свойства InventoryItems для Inventory

public class Inventory {

private Product[] stuff;

public Inventory() {}

public Product[] InventoryItems {

get {return stuff;}

set {stuff=value;}

}

}

public class Product {

private int prodId;

private string prodName;

private int suppId;

public Product() {}

public int ProductID {

get {return prodId;}

set {prodId=value;}

}

public string ProductName {

get {return prodName;}

set {prodName=value;}

}

public int SupplierID {

get {return suppId;}

set {suppId=value;}

}

}

public class BookProduct:Product {

private string isbnNum;

public BookProduct() {}

public string ISBN {

get {return isbnNum;}

set {isbnNum=value;}

}

}

Это тот же пример, что и раньше, но первое, что необходимо заметить,— здесь нет добавленных в класс Inventoryатрибутов. Поэтому в данном случае представьте, что классы Inventory, Productи производный класс BookProductнаходятся в отдельной DLL, и у нас нет исходного кода.

Первым шагом в процессе является создание объекта на основе XmlAttributes, и объекта XmlElementAttributeдля каждого типа данных, который будет переопределяться:

XmlAttributes attrs=new XmlAttributes();

attrs.XmlElements.Add(new XmlElementAttribute("Book", typeof(BookProduct)));

attrs.XmlElements.Add(new XmlElementAttribute("Product", typeof(Product)));

Здесь мы добавляем новый XmlElementAttributeк коллекции XmlElementsкласса XmlAttributes. Класс XmlAttributesимеет свойства, соответствующие атрибутам, которые могут применяться; XmlArrayи XmlArrayItems, которые мы видели в предыдущем примере, являются только парой. Теперь мы имеем объект XmlAttributesс двумя объектами на основе XmlElementAttribute, добавленными к коллекции XmlElements. Далее создадим объект XmlAttributeOverrides:

XmlAttributeOverrides attrOver = new XmlAttributeOverride();

attrOver.Add(typeof(Inventory) , "Inventory Items", attrs);

Meтод Addимеет две перегружаемые версии. Первая получает информацию о типе переопределяемого объекта и объект XmlAttributes, который был создан ранее. Вторая версия та, что мы используем, получает также с строковое значение, которое является членом в переопределенном объекте. В нашем случае мы хотим переопределить член InventoryItemsв классе Inventory.

Теперь создадим объект XmlSerializer, добавляя объект XmlAttributeOverridesв качестве параметра. XmlSerializerуже знает, какие типы мы хотим переопределить и что нам нужно вернуть для этих типов. Если выполнить метод Serialize, то получится следующий вывод XML:

100

Product Thing

10

101

How to Use Your New Product Thing

10

123456789

Мы получили тот же самый XML, что и в предыдущем примере. Чтобы десериализовать этот объект и воссоздать объект на основе Inventory, с которого мы начали, необходимо создать все те же объекты XmlAttributes, XmlElementAttributeи XmlAttributeOverrides, которые создаются при сериализации объекта. Когда это будет сделано, можно прочитать XML и воссоздать объект Inventory, как это делалось раньше. Вот код для десериализации объекта Inventory:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «C# для профессионалов. Том II»

Представляем Вашему вниманию похожие книги на «C# для профессионалов. Том II» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «C# для профессионалов. Том II»

Обсуждение, отзывы о книге «C# для профессионалов. Том II» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x