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

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

Генерация кода 
Изменено Alexandr Fokin
в 2023/08/06 16:33

Оглавление

 	Генерация кода, 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