从TextTransform.exe获取参数值到模板中

Ant*_*cik 7 t4 template-engine

我无法找到一些示例,当我使用TextTransform.exe从模板生成代码时,如何使用参数-a.在MSDN中,以下是对参数-a的描述:

"指定指令处理器可以作为名称/值对查询的参数.指令处理器和标识符是可选的.这允许为任何指令处理器或特定指令处理器的任何实例指定参数."

我需要一些参数集,如连接字符串等,在我的模板中.我的想法是在参数-a的帮助下获得配置文件的路径.

关心安东卡尔奇克

更新:要足够清楚,我希望在模板中直接读取参数.

Ant*_*cik 7

文本模板转换工具包(T4)来自Microsoft不太受支持.只有少数例子.如果你想了解更多,请访问Olegs Sychs博客.T4在这里得到了非常深刻的解释.

几个小时后,我试图从我的模板中的TextTransform.exe获取参数,我找到了一个解决方案:

hostspecific="true"属性添加到template元素,如下所示:

<#@ template language="C#v3.5" hostspecific="true"#>
Run Code Online (Sandbox Code Playgroud)

稍后在模板中你可以打电话给ResolveParameterValueOleg提到.

例:

<#

 string parameterTest = Host.ResolveParameterValue(null, null, "someKey");
 WriteLine(parameterTest);

#>
Run Code Online (Sandbox Code Playgroud)

你调用模板生成器,所以:

"C:\Program Files\Common Files\Microsoft Shared\TextTemplating\1.2\TextTransform.exe" -a !!someKey!someValue
Run Code Online (Sandbox Code Playgroud)

生成后应该在生成的文件中:'someValue'

  • 使用VS2010,将空值或空字符串传递给`Host.ResolveParameterValue(null,null,"someKey")`的前两个参数之一会导致参数null异常. (6认同)