Как стать автором
Обновить

Комментарии 6

НЛО прилетело и опубликовало эту надпись здесь

Вы не понимаете, на самом деле нет правильных практик

НЛО прилетело и опубликовало эту надпись здесь

Спасибо за статьи. Жду продолжения.

Вопрос про "Способы реализации общей функциональности" вариант "первый", добавление общего кода в выдачу генератора. Как-то можно проверить, что в контексте уже присутствует атрибут IncludeIntoList (который подтянулся через нугет пакет, тоже использующий этот генератор) и не добавлять его в общую выдачу?

Простите за задержку с ответом, и спасибо что прочитали =)

Про способы реализации общей функциональности это интересное предложение, я запишу себе проверить и либо дополню эту часть, либо предложу улучшение в следующей.

Я посмотрел и, насколько я понимаю, это невозможно. Здесь есть нюанс, связанный с тем, что генератор не может обращаться к коду, который является его же результатом. Есть исключение -- генератору виден код, добавленный в RegisterPostInitializationOutput, но там нет никакой возможности проверить наличие или отсутствие типа в Compilation (например, при помощи GetTypeByMetadataName).

Конечно вполне возможно что я ошибаюсь, но на текущий момент я никакой возможности для реализации такой функциональности не вижу.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории