Comments 8
Спасибо за статьи. Жду продолжения.
Вопрос про "Способы реализации общей функциональности" вариант "первый", добавление общего кода в выдачу генератора. Как-то можно проверить, что в контексте уже присутствует атрибут IncludeIntoList (который подтянулся через нугет пакет, тоже использующий этот генератор) и не добавлять его в общую выдачу?
Простите за задержку с ответом, и спасибо что прочитали =)
Про способы реализации общей функциональности это интересное предложение, я запишу себе проверить и либо дополню эту часть, либо предложу улучшение в следующей.
Я посмотрел и, насколько я понимаю, это невозможно. Здесь есть нюанс, связанный с тем, что генератор не может обращаться к коду, который является его же результатом. Есть исключение -- генератору виден код, добавленный в RegisterPostInitializationOutput
, но там нет никакой возможности проверить наличие или отсутствие типа в Compilation
(например, при помощи GetTypeByMetadataName
).
Конечно вполне возможно что я ошибаюсь, но на текущий момент я никакой возможности для реализации такой функциональности не вижу.
Все еще жду 3 часть
Современные Source Generators в .NET, часть 2