Чему вы научитесь
- читать метаданные типов, методов, свойств, конструкторов и атрибутов
- находить нужные члены типа с помощью Type, MemberInfo и BindingFlags
- создавать экземпляры типов, известных только во время выполнения
- создавать пользовательские атрибуты и строить на них правила валидации
- строить, компилировать и изменять Expression Trees
- применять ExpressionVisitor для преобразования деревьев выражений
- создавать делегаты для чтения и записи свойств
- сравнивать прямой доступ, рефлексию и скомпилированные делегаты с BenchmarkDotNet
- реализовать учебный Service Locator и исследовать зависимости конструкторов
О курсе
Рефлексия и Expression Trees используются внутри многих ORM, сериализаторов, тестовых фреймворков и контейнеров зависимостей. Они дают гибкость, но без понимания метаданных, накладных расходов и ограничений быстро превращаются в «магию». Этот курс поможет разобрать механизмы по частям и научиться применять их осознанно.
Вы начнёте с Type, MemberInfo, BindingFlags и ConstructorInfo: научитесь исследовать типы и их члены, читать атрибуты и создавать объекты по известному во время выполнения Type. Затем перейдёте к Expression Trees — построению выражений, вызовам методов, условиям, блокам, присваиваниям, ExpressionVisitor и компиляции деревьев в делегаты.
Теория сразу закрепляется кодом. В практических заданиях вы создадите валидатор на основе атрибутов, делегаты для чтения и записи свойств, преобразования деревьев выражений и минимальный Service Locator.
Service Locator используется как учебный кейс для работы с типами, конструкторами и зависимостями. Он не предлагается как замена встроенному DI-контейнеру .NET — в курсе отдельно разбираются ограничения такого подхода.
Курс находится в раннем доступе. Сейчас опубликована примерно треть программы: основы рефлексии, работа с типами и атрибутами, Expression Trees и минимальный Service Locator. Новые разделы будут добавляться поэтапно. Текущая цена учитывает ранний доступ и будет повышаться по мере наполнения курса.
В следующих обновлениях запланированы рекурсивная сборка графа зависимостей, работа со сборками и плагинами, Reflection.Emit, разбор IQueryable<T>, вопросы производительности и AOT, а также итоговый проект MiniDapper — учебная мини-ORM, вдохновлённая подходом Dapper.
Промокод UAREGOOD даёт скидку, успей активировать.
Для кого этот курс
Начальные требования
уверенное владение синтаксисом C# и основными принципами ООП
понимание обобщений, делегатов и лямбда-выражений
базовое знание LINQ
умение читать, запускать и отлаживать проекты .NET
предварительное знание рефлексии и Expression Trees не требуется
Наши преподаватели
Как проходит обучение
Курс полностью текстовый, без видео. Разделы состоят из коротких лекций с примерами кода, тестов и практических заданий. По материалам удобно искать, а примеры можно запускать и изменять — после прохождения курс можно использовать как справочник.
Жёстких дедлайнов нет: вы учитесь в удобном темпе. Сначала решаете задачу самостоятельно, а после успешной отправки можете сравнить свой вариант с авторским решением.
Для дополнительных экспериментов рекомендуется локальный .NET SDK и привычная IDE.
Программа курса
Сертификат
Отзывы прошедших курс
Что вы получаете
- рост в собственном карьерном пути
- навыки работы с рефлексией
- сертификат