2010-11-02 1 views
0

Я создал AddInHost, с помощью которого я могу расширить команды VS Ide (щелкните правой кнопкой мыши по SolutionExplorerMenu).Генерация ClassTemplate в VS 2008 с T4 или другой технологией

Теперь я хочу использовать AddIn для генерации кода из шаблона.

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

Для шаблонов мне нужно указать некоторые параметры, которые я могу использовать в шаблоне. мне нужны параметры для

  • пространство имен
  • ИмяКласса
  • Methodcollection
  • PropertyCollection

Я пытался использовать

<#@ property name="ClassName" type="System.String" processor="PropertyProcessor" #> 

, но после того, как я прочитал некоторые статьи, которые я думал, что это Shoul d не будет работать правильно.

Моя проблема в том, что я не могу найти решение для работы с T4 и моей AddIn.

Все команды в Addin имеют один метод «Выполнить», где записывается вся реализация конкретной команды. В команде у меня есть ссылка на хост (= VS IDE), поэтому я могу полностью использовать модель IDE.

Как я могу использовать T4 в своем AddIn для создания файла на основе шаблона?
Как я должен это делать?
Должен ли я добавить файл в проект назначения через ProjectItems.AddFromFile() или могу ли я использовать функции T4?

Я немного смущен, как я могу реализовать свои требования.

Большое спасибо.

ответ

0

Используйте услугу ITextTemplating. Вот why.

+0

Вот как я попробовал это раньше, но я не видел, как я могу объединить ITextTemplating с моим CommandAction? Должен ли я создать свой пользовательский «ITextTemplatingEngineHost», когда я использую движок? Должен ли я создать движок/хост через ServiceProvider или напрямую через «новую» инициализацию? – Khh

Смежные вопросы