Презентация Разработка приложений на платформе . NET. Лекция 10 онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Разработка приложений на платформе . NET. Лекция 10 абсолютно бесплатно. Урок-презентация на эту тему содержит всего 19 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Разработка приложений на платформе . NET. Лекция 10



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    19 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    83.85 kB
  • Просмотров:
    146
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Разработка приложений на
Содержание слайда: Разработка приложений на платформе .NET Атрибуты Сериализация

№2 слайд
Сегодня Атрибуты Сериализация
Содержание слайда: Сегодня Атрибуты Сериализация

№3 слайд
Сегодня Атрибуты Сериализация
Содержание слайда: Сегодня Атрибуты Сериализация

№4 слайд
Атрибуты Метаданные
Содержание слайда: Атрибуты Метаданные: Стандартные Расширенные (атрибуты) Атрибуты: Дополнительная метаинформация о сборке, типе, методе, свойстве, и т.д. Добавляется декларативным образом Доступ к атрибутам можно получить через Reflection Использование Может учитываться во время компиляции Может учитываться во время исполнения Может учитываться средой разработки

№5 слайд
Применение атрибутов В
Содержание слайда: Применение атрибутов В квадратных скобках перед целевым объектом: Например, перед типом [Serializable] public class Complex {…} Или перед методом: [System.Runtime.InteropServices.DllImport("user32.dll")] extern static void SampleMethod(); Может быть применено несколько атрибутов одновременно [Serializable] [Obsolete] [DefaultMember(“Re”)] [MyAttrib(“im”, myval = 12345)] public struct Complex { … } Несколько атрибутов можно объединить в одни [] [XmlIgnore, Obsolete] public double Re { get; set; } Некоторые атрибуты могут быть применены сразу несколько раз [Conditional("DEBUG"), Conditional("TEST1")] void TraceMethod(){…}

№6 слайд
Применение атрибутов
Содержание слайда: Применение атрибутов Параметры атрибутов: Могут задаваться позиционно или по имени Позиционные, как обычно, задаются в определённом порядке и не могут быть пропущены Именованные параметры могут следовать в произвольном порядке и могут быть пропущены [DllImport("user32.dll")] [DllImport("user32.dll", SetLastError=false, ExactSpelling=false)] [DllImport("user32.dll", ExactSpelling=false, SetLastError=false)] …….. Целью атрибутов могут быть: Сборка, Модуль, Тип, Поле, Свойство, Метод, Параметр (метода или свойства), Возвращаемое значение (метода или свойства), Событие [assembly: AssemblyTitleAttribute("Production assembly 4")] // Атрибут сборки [module: CLSCompliant(true)] // Атрибут модуля [SomeAttr] // Атрибут метода int Method1() { return 0; } [method: SomeAttr] // Можно и конкретно указать, что это атрибут метода int Method2() { return 0; } [return: SomeAttr] // Атрибут возвращаемого значения int Method3() { return 0; }

№7 слайд
Создание собственного
Содержание слайда: Создание собственного атрибута Класс, должен быть унаследован от абстрактного класса Attribute public class ColumnAttribute : Attribute {…} Можно задавать область применимости атрибута с помощью атрибута AttributeUsage [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] public class TableAttribute : Attribute { public TableAttribute(string tableName) { this.tableName = tableName ?? String.Empty; } private readonly string tableName; public string TableName { get { return tableName; } } } Применение такого атрибута (Attribute можно опускать) [Table("Customers")] public class Customer {…} [TableAttribute("Orders")] public class Order {…} Класс Attribute предоставляет набор статических методов для работы с атрибутами

№8 слайд
Получение атрибута Через
Содержание слайда: Получение атрибута Через информацию о члене: bool MemberInfo.IsDefined(Type attrType, bool inherit) – нет доступа к атрибутному объекту Только проверка о существовании атрибута Через атрибут: Attribute[] GetCustomAttributes(MemberInfo mi) Attribute Attribute.GetCustomAttribute(MemberInfo mi, Type attrType) Создают экземпляры атрибутов (вызывают конструкторы классов атрибутов, задают свойства и т.д.) if (entity.GetType().IsDefined(typeof(TableAttribute), false)) { TableAttribute tableAttribute = (TableAttribute)Attribute.GetCustomAttribute(entityType, typeof(TableAttribute)); Console.WriteLine(tableAttribute . TableName ); } Атрибут может наследоваться от предка к потомку. Например, применив атрибут к базовому классу, класс наследник тоже будет иметь этот атрибут. Наследование может быть задано с помощью AttributeUsageAttribute на конкретном классе атрибута [AttributeUsageAttribute(AttributeTargets.All, Inherited = true, AllowMultiple = false)] public abstract class AuthorAttribute : Attribute {….}

№9 слайд
Использование атрибутов
Содержание слайда: Использование атрибутов Сериализация – что и как сериализовать Работа с БД Автоматическое чтение/запись объектов в БД Авто генерация таблиц по атрибутам WCF, веб-сервисы Пометить метод как доступный удаленно. Задание контрактов Аспектно-ориентированное программирование Задание метаинформации сборке (версию, описание, торговую марку и т.д.) [assembly: AssemblyVersion("1.0.0.0")] Вызов неуправляемого кода [DllImport("user32.dll", CharSet = CharSet.Unicode)] public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type); Взаимодействие со средой разработки [Obsolete("Use Method2 instead")] Описание свойств, методов и т.д. для COM объектов Взаимодействие с системой безопасности .NET

№10 слайд
Демонстрации Работа с
Содержание слайда: Демонстрации Работа с атрибутами Построение SQL запроса для произвольной Entity

№11 слайд
Сегодня Атрибуты Сериализация
Содержание слайда: Сегодня Атрибуты Сериализация

№12 слайд
Сериализация Сериализация
Содержание слайда: Сериализация Сериализация – процесс сохранения состояния объекта в потоке Сохраняются данные и необходимая информация для реконструкции объекта – десериализации При сериализации Сохраняется граф объектов Сохраняются данные и всех базовых классов Использование Сохранение данных программы (например, настройки) Передача объектов по сети “Персистентные” объекты (время жизни объекта больше времени работы программы)

№13 слайд
Формат сериализации Двоичный
Содержание слайда: Формат сериализации Двоичный Компактный Для десериализации нужен .NET SOAP Стандарт W3C.org Не зависит от платформы Многословен XML Произвольный XML формат Не зависит от платформы Многословен Полностью настраиваемый

№14 слайд
Настройка сериализации Только
Содержание слайда: Настройка сериализации Только для двоичного и SOAP форматов С помощью атрибутов [Serializable] – указывает на то, что тип можно сериализовать [Serializable] class Complex {….} Что сериализуется Все публичные и приватные поля (и автоматические свойства) Базовые и используемые типы тоже должны быть сериализуемыми, т.е. иметь атрибут [Serializable] [NonSerialized] – помечается поле или автоматическое свойство, если что-то сериализовать не нужно [Serializable] struct Complex { double im, re; [NonSerialized] double mod, arg; }

№15 слайд
Как сериализовать Форматеры
Содержание слайда: Как сериализовать Форматеры BinaryFormatter – для бинарной сериализации (System.Runtime.Serialization.Formatters.Binary.BinaryFormatter) SoapFormatter – для сериализации в SOAP формате (System.Runtime.Serialization.Formatters.Soap.SoapFormatter) XmlSerializer – для сериализации в произвольный XML формат (System.Xml.Serialization.XmlSerializer)

№16 слайд
Как сериализовать Для
Содержание слайда: Как сериализовать Для BinaryFormatter и SoapFormatter Serialize(stream, obj) – сериализация объекта в поток Complex complex = new Complex(10, 20); using (FileStream stream = new FileStream("store.bin", FileMode.Create)) { BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(stream, complex); } object Deserialize(stream) – для десериализации объекта Complex complex; using (FileStream stream = new FileStream("store.bin", FileMode.Open)) { BinaryFormatter binaryFormatter = new BinaryFormatter(); complex = (Complex)binaryFormatter.Deserialize(stream); } Для XmlSerializer необходимо указать сериализуемый тип(-ы) XmlSerializer serializer = new XmlSerializer(typeof(Complex)); serializer.Serialize(fileStream, complex); XmlSerializer serializer = new XmlSerializer(typeof(Car), new Type[] { typeof(Radio) }); Car c = (Car)ser.Deserialize(fileStream);

№17 слайд
Особенности XML сериализации
Содержание слайда: Особенности XML сериализации Сериализация только публичных полей и свойств (приватных полей, стоящих за ними) Должен быть конструктор без параметров Атрибуты настройки вида XML [XmlIgnore] [XmlAttribute] [XmlElement] [XmlText] И др. Необходимо задавать граф сериализуемых объектов XmlSerializer serializer = new XmlSerializer(typeof(Car), new Type[] { typeof(Radio) }); Не умеет сериализовать ArrayList и List<T>

№18 слайд
Демонстрации Сериализация
Содержание слайда: Демонстрации Сериализация

№19 слайд
Сегодня Атрибуты Сериализация
Содержание слайда: Сегодня Атрибуты Сериализация

Скачать все slide презентации Разработка приложений на платформе . NET. Лекция 10 одним архивом: