Комментарии 4
теоретически это можно сделать и через t4 (без консольного приложения), но я предпочитаю не бороться с добавлением в него ссылок на dll и странным синтаксисом, при отсутствии нормального редактора
В качестве T4 редактора есть плагин ForTea для ReSharper, не так давно его выпустили и для Rider. Для предпочитающих студию без решарпера есть и другие плагины, например нагуглился Devart T4 Editor, но с ним не сталкивался.
Не защищаю какой-то конкретный подход, когда-то удобнее T4, когда-то — Roslyn, просто для информации о том, что такие редакторы есть (может и не самые удобные, но лучше, чем полное отсутствие редактора, как было раньше)
Спасибо за информацию про плагин! Попробую.
Кстати, недавно наткнулся на интересную статью про кодогенерацию, где автор использует scriban в качестве шаблонизатора. На мой взгляд, это более интересная альтернатива t4.
Немного дополню, что Roslyn Source Generators никогда не зависили от .NET 5, только от С# 9, а точнее от версии компилятора, который его поддерживает.
В этом можно убедиться и по официальным примерам.
Чтобы быть уверенным, что генератор отработает на всех окружениях можно
- либо добавить в транзитивную зависимость Microsoft.Net.Compilers.Toolset 3.8.0+, что точно подойдет не всем, особенно публичным библиотекам.
- либо воспользоваться Uno.SourceGeneration, опыт использования которого я описывал тут.
Кодогенерацию с использованием Roslyn можно использовать и без перехода на .Net 5