Значения обязательной конфигурации шаблона T4 - PullRequest
0 голосов
/ 23 февраля 2010

Я планирую использовать шаблон T4 для генерации файлов конфигурации. У меня есть файл main.tt с основными настройками. Существуют разные .tt-файлы для каждой среды, которые включают main.tt Единственное, чего я хочу добиться, - как сделать так, чтобы каждый файл .tt, относящийся к конкретной среде, переопределял переменные main.tt. Мне нужно сделать это, так как я хочу убедиться, что все значения перезаписаны в специфических для среды файлах .tt, иначе шаблон T4 подберет значения main.tt. Я хочу избежать любых пропущенных значений окружения, которые можно выбрать из main.tt Как указать обязательное переопределение из main.tt?

<# @ template language = «C #» #> <# @ output extension = «.config» #> » providerName = ”System.Data.SqlClient” /> » providerName = ”System.Data.SqlClient” /> <# + string NorthwindConnectionString = «Источник данных =; Первоначальный каталог = Northwind; Интегрированная безопасность = True»; string PubsConnectionString = «Источник данных =; Исходный каталог = Пабы; Интегрированная безопасность = True»; </p>

>

как мне убедиться, что NorthwindConnectionString и PubsConnectionString имеют конкретные значения во всех специфических для среды файлах .tt?

Ответы [ 2 ]

0 голосов
/ 02 марта 2010

Все, что находится внутри блока <# #>, в основном просто код .NET, так как бы вы решили эту проблему без T4? Примерно так, вероятно, будет работать нормально:

<#
if (NorthwindConnectionString.Equals(
      "Data Source=.;Initial Catalog=Northwind;Integrated Security=True"))
{
    throw new CustomException("NorthwindConnectionString needs
        to be overriden in environment specific .tt file!");
}
#>
0 голосов
/ 23 февраля 2010

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

...