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)