Рантайм и типы - Генерация кода

Page / - Изменено Alexandr Fokin в 2023/08/06 15:31

Генерация кода

Изменено Alexandr Fokin

в 2023/08/06 15:31

Оглавление

Генерация кода, SourceGenerators, Source generators, SourceGenerator, SourceGenerator
Roslyn
Описания	Позволяет использовать преимущества динамического формирования кода (схожего с Reflection | Рефлексия), при том что сам этап генерации происходит в момент сборки приложения. Позволяет увидеть динамический (сгенерированный) код. Позволяет выполнить проверки типов на этапе компиляции для генерируемого кода (что не возможно при других подходах). Производительность кода равна коду, написанному вручную (т.к. генерация идет в момент сборки, а не в рантайме).
Минусы	Некоторые моменты инструмента еще сырые (Например поддержка на уровне IDE). Некоторая сложность тестирования. Написание и хранения блоков кода в виде строк может быть не очень удобной. Сложность разработки и быстрого изменения выше, чем при использовании рефлексии. (В том числе необходимость учитывать разные варианты объявления элементов кода).
Материалы	Олег Сафонов — Пишем код, когда пишем код: source generator'ы https://www.youtube.com/watch?v=wtGTxRDSQz4 Роман Щербаков «C# 9.0 Source Generators» https://www.youtube.com/watch?v=Xeuewv-5nOA

Внутренние ссылки:

Дочерние страницы:

Обратные ссылки:

Stronginject