- •Атрибуты в среде .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 при помощи linq to xml
API-интерфейс LINQ to XML предлагает альтернативный способ построения, манипулирования и опроса XML-документов, который использует намного более функциональный подход, чем модель DOM из System.Xml. Вместо построения XML-документа за счет индивидуальной сборки элементов и обновления дерева XML через набор вызовов функций, код пишется сверху вниз.
Пример создания аналогичного предыдущему XML-документа
XElement doc =
new XElement("recipe", new XAttribute("name", "хлеб"),
new XElement("title", "Простой хлеб"),
new XElement("ingredient", new XText("Мука"),
new XAttribute("amount", "3"), new XAttribute("unit", "стакан")),
new XElement("ingredient", new XText("Дрожжи"),
new XAttribute("amount", "0.25"), new XAttribute("unit", "грамм")),
new XComment("This is comment")
);
Классы X* и их коллекции также реализуют методы, позволяющие опрашивать загруженное дерево XML в поисках элементов, атрибутов и их значений, а также модифицировать их. Примеры методов:
Ancestor () |
Возвращает отфильтрованную коллекцию элементов-предков данного элемента |
Attributes () |
Возвращает отфильтрованную коллекцию атрибутов элемента |
Descendants<T> |
Возвращает отфильтрованную коллекцию элементов-потомков данного элемента |
Elements<T> |
Возвращает коллекцию дочерних элементов данного элемента |
Nodes<T> |
Возвращает коллекцию дочерних узлов данного элемента |
Remove () |
Удаляет заданный элемент из родительского элемента |
Пример:
doc.Elements("ingredient").Remove();
Выводы:
XML – текстовый формат для представления структурированных данных в виде дерева.
Для работы с XML в .NET обычно используются классы пространства имен System.Xml или механизм LINQ to XML.
System.Xml предоставляет классы вида XmlDocument, XmlElement, XmlAttribute, XmlComment и др. Формирование структуры осуществляется методами вида CreateElement/ CreateAttribute/ CreateComment, AddChild()/RemoveChild(), SetAttribute() и др. Чтение — методами и свойствами вида GetElementsByTagName(), GetElementById(), ChildNodes, NextSibling/PreviousSibling, Value и др.
System.Xml.Linq позволяет создавать XML-документы в более наглядной манере, задавая структуру при помощи конструкторов объектов с переменным числом параметров. Используются такие классы как XElement, XAttribute, XComment и др. Для чтения и изменения узлов дерева используются вызовы вида Elements(“имя элемента”), Attributes(“имя атрибута”) и др.
Потоковый ввод-вывод. Файлы. Работа с файлами и каталогами. Пространство имен System.Io
Типы пространства имен System.IO:
BinaryReader BinaryWnter |
Эти классы позволяют читать и записывать элементарные типы данных (целочисленные, булевские, строковые и т.п.) в двоичном виде |
BufferedStream |
Этот класс предоставляет временное хранилище для потока байтов, которые могут затем быть перенесены в постоянные хранилища |
Directory Directorylnfo |
Эти классы используются для работы с каталогами файловой системы. Тип Directory предоставляет для этого статические члены. Тип Directorylnfo обеспечивает аналогичную функциональность через экземпляр объекта |
Drivelnfo |
Этот класс предоставляет детальную информацию относительно дисковых устройств, используемых данной машиной |
File Filelnfo |
Эти классы служат для работы с файлами в файловой системе. Тип File представляет функциональность через статические члены. Тип Filelnfo обеспечивает аналогичную функциональность через экземпляр объекта |
FileStream |
Этот класс обеспечивает произвольный доступ к файлу с данными, представленными в виде потока байт |
FileSystemWatcher |
Этот класс позволяет отслеживать изменения внешних файлов в определенном каталоге |
MemoryStream |
Этот класс обеспечивает произвольный доступ к данным, хранящимся в памяти, а не в физическом файле |
Path |
Этот класс выполняет операции над типами System.String, содержащими информацию о пути к файлу или каталогу в независимой от платформы манере |
StreamWriter StreamReader |
Эти классы используются для хранениия (и извлечения) текстовой информации из файла. Эти классы не поддерживают произвольного доступа к файлу |
StringWriter StringReader |
Подобно классам StreamWriter/StreamReader, эти классы также работают с текстовой информацией. Однако лежащим в основе хранилищем является строковый буфер, а не физический файл |