Вот что вы можете сделать с T4 Toolbox :
<#@ template language="C#v3.5" hostspecific="True" debug="True" #>
<#@ include file="T4Toolbox.tt" #>
<#
var namespaceName = TransformationContext.DefaultNamespace;
#>
Свойство DefaultNamespace класса TransformationContext возвращает строку с пространством имен на основе корневого пространства имен вашего проекта и местоположения вашего файла .tt в нем (т. Е. Он рассматривает папки как пространства имен). Таким образом, вам не нужно указывать свойство пространства имен настраиваемого инструмента для каждого экземпляра файла .tt.
Если вы предпочитаете использовать свойство пространства имен пользовательского инструмента, вы можете передать Host.TemplateFile методу GetCustomToolNamespace, опубликованному @ sixlettervariables.