我无法找到一些示例,当我使用TextTransform.exe从模板生成代码时,如何使用参数-a。在MSDN中是关于参数-a:
的描述“指定指令的参数 处理器可以查询为 名称/值对。指令 处理器和标识符是可选的。 这允许指定参数 对于任何指令处理器或任何 特定指令的实例 处理器“。
我需要一些参数集,比如我的模板中的连接字符串等等。我的想法是在参数-a。
的帮助下获得配置文件的路径此致 安东卡尔奇克
更新:要足够清楚,我希望在模板中直接读取参数。
答案 0 :(得分:7)
文本模板转换工具包(T4)来自Microsoft不太受支持。只有少数例子。如果您想了解更多信息,请转到Olegs Sychs blog。 T4在这里得到了非常深刻的解释。
在我的模板中尝试从TextTransform.exe获取参数数小时后,我找到了一个解决方案:
将hostspecific="true"
属性添加到template
元素,如下所示:
<#@ template language="C#v3.5" hostspecific="true"#>
稍后在模板中,您可以像Oleg提到的那样致电ResolveParameterValue
。
示例:
<#
string parameterTest = Host.ResolveParameterValue(null, null, "someKey");
WriteLine(parameterTest);
#>
您可以调用模板生成器:
"C:\Program Files\Common Files\Microsoft Shared\TextTemplating\1.2\TextTransform.exe" -a !!someKey!someValue
生成后应该在生成的文件中:'someValue'
答案 1 :(得分:1)
-a参数接受以下格式的值:
<ProcessorName>!<DirectiveID>!<ParameterName>
这些也是ITextTemplatingEngineHost.ResolveParameterValue方法的参数,您需要调用这些参数才能在模板代码中获取参数值。