Я создал надстройку для генерации кода (C #, VS 08) для нашей команды.
Надстройка создает новый пункт меню, если я щелкаю файл в обозревателе решений.Там я могу выбрать целевой тестовый проект, в котором сгенерированы 2 файла.
Для процесса генерации кода мне нужна информация из выбранного элемента в обозревателе решений (например, интерфейсы, общие типы объявления класса).
Мой исходный класс выглядит как
public class CustomerLogic : BaseBL<T1, T2, T3>, ICustomerBL
сгенерированный контейнерный класс
public class CustomerContainer : BaseBLDummyContainer<T1, T2, T3>
сгенерированный фиктивный класс выглядиткак
public class CustomerBLDummy : BaseBLDummy<T1, T2, T3, CustomerContainer>, ICustomer
Как я это понял?
Я создал два шаблона (контейнер и пустышка), поместил заполнитель в пробелы, чтобы два файла шаблона выглядели как
Containertemplate
public class $Classname$ : BaseBLDummyContainer<$T1$, $T2$, $T3$>
Dummytemplate
public class $Classname$ : BaseBLDummy<$T1$, $T2$, $T3$, $TContainer$>$, TInterface$
Для генерации шаблонов я написал некоторый код для
- , создайте файлы
- добавьте их в целевой проект
- создайте методы, если это необходимо
Вы видите, что "много" нужно сделать только для генерации некоторого кода.
- Теперь я считаю, что поколение с Т4 лучшеРешение для моей ситуации?
- Есть ли у меня некоторые преимущества механизма T4?(Я вижу только некоторые образцы T4 в сочетании с EF или генерацией, связанной с базой данных)
- Должен ли я быть более гибким с T4?
Спасибо большое.