- •Атрибуты в среде .Net и языке c#.
- •Метаданные
- •Понятие атрибутов
- •Предопределенные и собственные атрибуты
- •Потребители атрибутов
- •Применение атрибутов
- •Сокращенное именование атрибутов
- •Создание собственных атрибутов:
- •Применение собственных атрибутов:
- •Ограничение использования атрибутов:
- •Атрибуты уровня сборки и модуля:
- •Рефлексия атрибутов:
- •Выводы:
- •Язык xml. Классы платформы .Net для работы с xml-данными.
- •Синтаксис xml
- •Работа с xml при помощи System.Xml
- •Работа с xml при помощи linq to xml
- •Выводы:
- •Потоковый ввод-вывод. Файлы. Работа с файлами и каталогами. Пространство имен System.Io
- •Классы Directory (DirectoryInfo) и File (FileInfo) Некоторые общие свойства классов DirectoryInfo и FileInfo:
- •Дополнительные возможности класса DirectoryInfo
- •Дополнительные возможности класса FileInfo
- •Дополнительные члены File
- •Потоковый ввод-вывод
- •Работа с классом FileStream
- •Работа с классами StreamWriter и StreamReader
- •Классы StringWriter и StringReader
- •Работа с классами BinaryWriter и BinaryReader
- •Выводы:
- •Сериализация. Атрибуты. Стандартные форматы сериализации. Понятие сериализации объектов
- •Роль графов объектов
- •Конфигурирование объектов для сериализации
- •Общедоступные поля, приватные поля и общедоступные свойства
- •Стандартные форматеры сериализации
- •Настройка сериализации с использованием атрибутов
- •Выводы:
- •Понятие бд и субд. Язык sql. Ado.Net как средство доступа из c# к субд. Понятие бд
- •Понятие субд
- •Обзор синтаксиса
- •Подключенный уровень
- •Автономный уровень
- •Основные свойства класса DataSet
- •Основные методы класса DataSet
- •Типы DataColumn и DataRow
- •Основные члены типа DataColumn:
- •Основные члены типа DataRow:
- •Работа с адаптерами данных:
- •Основные члены класса DbDataAdapter:
- •Параллельные вычисления. Многозадачность и многопоточность.
- •Некоторые члены класс Process:
- •Некоторые члены класса ProcessThread
- •Домены приложений
- •Некоторые члены класс AppDomain:
- •Многопоточность. Классификация состояний потока. Средства многопоточного программирования System.Threading.
- •Некоторые члены пространства имен System.Threading
- •Основные члены класс Thread
- •Состояния потока
- •Многопоточное программирование при помощи асинхронных вызовов делегатов
- •Создание вторичных потоков при помощи Thread.Start()
- •Синхронизация с помощью lock
- •Синхронизация с использованием типа System.Threading.Monitor
- •Синхронизация с использованием типа System.Threading.Interlocked
- •Синхронизация с использованием атрибута [Synchronization]
- •Использование System.Threading.Timer
- •Пул потоков clr
- •Библиотека Windows.Forms. Пространства имен. Структура приложения. Элементы управления. События. Иерархия элементов управления.
- •Основные пространства имен Windows Forms
- •Структура приложения WinForms
- •Элементы управления
- •События
- •Библиотека wpf. Отличия wpf от WindowsForms. Разметка xaml. Понятие Windows Presentation Foundation
- •Типы приложений wpf
- •Основные сборки wpf
- •Построение приложения wpf без xaml
- •Построение приложения wpf с использованием только xaml
- •Пример c# обработчика события для контрола, объявленного в xaml (связь кода и xaml):
- •Создание проекта
- •Знакомство с инструментами визуального конструктора wpf
Работа с xml при помощи System.Xml
Пространство имен System.Xml содержит классы для работы с XML документами. Данные классы описывают различные аспекты XML-документов. Рассмотрим некоторые наиболее употребимые:
XmlNode
Обобщенный класс, представляющий собой узел структуры XML-дерева. Некоторые методы/свойства:
AppendChild() |
Добавляет дочерний элемент к текущему |
InsertAfter() InsertBefore() |
Добавляет дочерний элемент с указанием места вставки |
RemoveChild() |
Удаляет дочерний элемент |
RemoveAll() |
Удаляет все дочерние элементы |
Attributes |
Возвращает коллекцию атрибутов данного узла |
ChildNodes |
Возвращает коллекцию дочерних узлов данного узла |
Name |
Имя узла |
NextSibling PreviousSibling |
Предыдущий/следующий сосед того же уровня в иерархии XML-дерева |
Value |
Содержимое узла (например, значение атрибута) |
XmlDocument
Представляет XML-документ, используется для загрузки/сохранения документа, добавления/удаления элементов. Наследует от XmlNode
Некоторые методы/свойства:
Load() |
Перегруженный метод, позволяющий загружать XML из файла, потока, с помошью XmlReader или TextReader |
LoadXml() |
Позволяет загружать XML из строки |
Save() |
Сохраняет документ |
CreateElement() CreateComment() CreateAttribute() |
Создает и возвращает соответствующий объект структуры XML. Элемент создается, однако в дерево XML-иерархии не добавляется |
GetElementById()
|
Возвращает элемент с заданным значением атрибута id |
GetElementsByTagName() |
Возвращает коллекцию элементов с указанным именем тега |
XmlElement
Представляет элемент структуры XML-документа. Наследует от XmlNode Некоторые методы/свойства:
SetAttribute() |
Устанавливает значение атрибута |
RemoveAttribute() |
Удаляет атрибут |
GetAttribute() |
возвращет значение указанного атрибута |
GetElementsByTagName() |
Возвращает коллекцию дочерних элементов с указанным именем тега |
HasAttributes |
Проверяет наличие указанного атрибута |
XmlAttribute
Представляет атрибут элемента структуры XML-документа. Наследует от XmlNode Большинство методов/свойств унаследованы от XmlNode
XmlComment
XML-комментарий. Наследует от XmlNode
XmlText
Текстовый элемент XML-документа.
Пример программы, создающей XML-документ
// Создать новый документ XML в памяти.
XmlDocument doc = new XmlDocument ();
// Заполнить документ корневым элементом по имени <recipe>.
XmlElement recipe = doc.CreateElement("recipe");
// Установим атрибуты
recipe.SetAttribute("name", "хлеб");
// Создадим подэлемент по имени <title>
XmlElement title = doc.CreateElement("title");
title.InnerText = "Простой хлеб";
// Создадим подэлементы <ingredient>
XmlElement ingredient0 = doc.CreateElement("ingredient");
ingredient0.InnerText = "Мука";
ingredient0.SetAttribute("amount", "3");
ingredient0.SetAttribute("unit", "стакан");
XmlElement ingredient1 = doc.CreateElement("ingredient");
ingredient1.InnerText = "Дрожжи";
ingredient1.SetAttribute("amount", "0.25");
ingredient1.SetAttribute("unit", "грамм");
// Создадим комментарий
XmlComment comment = doc.CreateComment("This is comment");
// Добавим подэлементы в элемент <recipe>
recipe.AppendChild(title);
recipe.AppendChild(ingredient0);
recipe.AppendChild(ingredient1);
recipe.AppendChild(comment);
// Вставим полный XML в объект XmlDocument и сохраним в файле
doc.AppendChild(recipe) ;
doc.Save ("Recipe.xml");