Наследование шаблона T4 от настраиваемого базового класса, при условии, что Visual Studio 2010 SDK не установлен

У меня есть система шаблонов T4 - выполняемых во время выполнения , а не во время компиляции - которые генерируют скелеты многих классы в моем приложении. Все эти шаблоны находятся в инструменте-генераторе, который время от времени используется для предварительного создания новых классов в целевом приложении. Инструмент содержит класс конфигурации, свойства которого параметризуют вывод всех шаблонов T4.

Первоначально класс конфигурации был статическим. Однако, по мере роста инструмента генератора классов лучше сделать его нестатическим и лучше создавать новый экземпляр для каждого использования. Проблема в том, как передать этот экземпляр экземплярам шаблонов T4. Кажется, что естественный способ наследовать их от общей базы, которая будет предоставлена ​​экземпляром класса конфигурации.

Проблема в том, что класс TextTransformation , который был бы унаследован моим пользовательским базовым классом T4 , находится в сборке, которая (согласно таким источникам, как этот вопрос SO ) не поставляется с Visual Studio 2010. Вместо этого он предоставляется в Visual Studio 2010 SDK.

Базовый класс, созданный VS2010 , хотя сам по себе не имеет предка, не является частичным, поэтому нет возможности «внедрить» пользовательского предка через другое частичное объявление.

Таким образом, возникает вопрос: Есть ли способ наследовать шаблон T4, выполняемый во время выполнения, от настраиваемого базового класса без необходимости установки Visual Studio 2010 SDK?

Отказ от ответственности: Я не очень хорошо знаком с T4, поэтому могу ошибаться в том, как подойти к этой проблеме. Следовательно, приветствуются любые другие советы по архитектуре, хотя моя цель не в создании генератора с суперархитектурой - это просто вспомогательный инструмент, который должен быть простым и понятным для случайного читателя.

5
задан Community 23 May 2017 в 12:02
поделиться