【发布时间】:2011-09-21 01:14:26
【问题描述】:
我有一个 T4 模板,它与 TextTemplatingFilePreprocessor 一起使用来生成一个类,然后我可以使用该类来生成模板的输出。
在 T4 模板的开头,我导入了几个命名空间。例如
<#@ import namespace="Company.ProductX.Widgets" #>
<#@ import namespace="Company.ProductX.Services" #>
//...
我想使用Preprocessor Directives 将这些导入切换到另一组命名空间(与 ProductX 提供相同的接口但不同的功能)。例如
<#
#if(ProductX)
{
#>
<#@ import namespace="Company.ProductX.Widgets" #>
<#@ import namespace="Company.ProductX.Services" #>
//...
<#
}
#endif
#>
<#
#if(ProductY)
{
#>
<#@ import namespace="Company.ProductY.Widgets" #>
<#@ import namespace="Company.ProductY.Services" #>
//...
<#
}
#endif
#>
对于上面的示例,无论预处理器指令如何,导入似乎都会在类中创建相应的 using 语句。例如
using Company.ProductX.Widgets
using Company.ProductX.Services
using Company.ProductY.Widgets
using Company.ProductY.Services
是否有另一种方法可以在 T4 模板中使用预处理器来影响模板本身而不仅仅是模板输出?
【问题讨论】:
标签: t4 conditional-compilation