Использование шаблонов T4 для генерации во время выполнения
Вы выбираете этот метод, если вам нужно генерировать код во время выполнения.Например, вы хотите сгенерировать объект страницы с помощью Selenium.
Создайте папку в своем решении, назовите ее Templates (хорошее название для шаблонов T4).
Затем добавьте новый элемент типа T4, затем выберите текстовый шаблон времени выполнения .... Мы назвали наш шаблон MyNodeName.tt, который показан на изображении выше.
Добавьте код, как показано ниже, верхняя часть была вставлена Visual Studio ...
Вы можете видеть, что мы хотим передать имена пространств имен и классов (это разметка Model.NameSpaceName и Model.ClassName, показанная выше.
Сложная задача - научиться передавать параметры...
Создать новый класс CS с частичным именем в имени файла.
Но в классе неназовите его MyNodeNamePartial назовите его MyNodeName следующим образом:
public partial class MyNodeName
{
public MyNodeNameModel Model { get; set; }
}
Это то же имя, что и у файла TT. (MyNodeName), который создает собственный частичный класс. Но теперь обратите внимание, что у нас есть значение с именем MODEL этого классавведите ..
public class MyNodeNameModel
{
public MyNodeNameModel()
{
ClassName = "Test";
}
public string ClassName { get; set; }
public string NameSpaceName { get; set; }
}
Класс модели содержит ClassName и NameSpaceName и все остальное, что выМуравей, чтобы «вставить» в шаблон.
Ключ к этой работе, как показано , заключается в том, что был использован текстовый шаблон времени выполнения!Если вы используете текстовый шаблон, независимо от того, что вы делаете, вы увидите ошибки, похожие на «Модель не найдена» или другие неоднозначные проблемы.
Советы по отладке: «Модель не может быть найдена» - это код генерации T4, сообщающий вам, что в вашем частичном классе с переменной MODEL он не может ее найти!Проверьте и ваш частичный тип, и тип модели, чтобы убедиться, что они находятся в том же пространстве имен, что и любое другое пространство имен нормального класса, если бы оно было создано в этой папке.