Перейти к основному содержимому

5.05. .NET инфраструктура и метаданные

Разработчику Архитектору

.NET инфраструктура и метаданные

Атрибуты и метаданные

Что такое атрибут
Чем он отличается от других элементов
Что такое метаданные и где они хранятся

Стандартные и кастомные атрибуты
Системные атрибуты: [Serializable], [Obsolete]
Пользовательские атрибуты
[System.ComponentModel.EditorBrowsable] – скрытие методов из IntelliSense.

[DataContract], [DataMember] (System.Runtime.Serialization) – управление сериализацией.

[ValidationAttribute] (System.ComponentModel.DataAnnotations) – валидация моделей.

Рефлексия

Рефлексия
Type, MethodInfo, PropertyInfo
Динамический вызов методов
Создание экземпляров
Чтение атрибутов через рефлексию
System.Reflection – интроспекция типов, динамический вызов методов.
System.CodeDom.Compiler – генерация кода на лету (например, для динамических сборок).

Кодогенерация

Что такое кодогенерация
IL-генерация
Сравнение: рефлексия vs IL-генерация vs выражения
Expression Trees — деревья выражений
Использование в LINQ, ORM

XML-документация

XML-документация
Почему именно XML документация
/// <summary>, <param>, <returns>
Генерация XML-файла, использование в IntelliSense

Стек вызовов и диагностика

StackTrace, StackFrame
Логирование ошибок с контекстом
Журналы событий Windows
Запись в Event Log
EventLog класс
Где смотреть: Просмотр событий (Event Viewer)