| Генерация кода, SourceGenerators, Source generators, SourceGenerator, SourceGenerator |
| Roslyn |
Описания | - Позволяет использовать преимущества динамического формирования кода (схожего с Reflection | Рефлексия), при том что сам этап генерации происходит в момент сборки приложения.
- Позволяет увидеть динамический (сгенерированный) код.
- Позволяет выполнить проверки типов на этапе компиляции для генерируемого кода (что не возможно при других подходах).
- Производительность кода равна коду, написанному вручную (т.к. генерация идет в момент сборки, а не в рантайме).
|
Минусы | - Некоторые моменты инструмента еще сырые (Например поддержка на уровне IDE).
- Некоторая сложность тестирования.
- Написание и хранения блоков кода в виде строк может быть не очень удобной.
- Сложность разработки и быстрого изменения выше, чем при использовании рефлексии.
(В том числе необходимость учитывать разные варианты объявления элементов кода).
|
Материалы | |