<#@ template debug="false" hostspecific="false" language="C#" #>
主机特定属性在这里表示什么。
答案 0 :(得分:7)
将hostspecific设置为“true”的模板可以访问this.Host
类型的成员ITextTemplatingEngineHost
(MSDN)。然后你可以使用例如它的方法是“ResolvePath”,以便在模板中找到输入所需的文件。
使用自定义模板引擎时,这更有用。 请参阅Oleg的博客:http://www.olegsych.com/2008/02/t4-template-directive/
答案 1 :(得分:5)
设置HostSpecific标志后,您可以使用'this.Host'属性,类型为ITextTemplatingEngineHost,并允许您进行文件路径解析等。
但是,在Visual Studio中使用时(不是在构建时或从命令行),您还可以将主机转换为IServiceProvider并连接到Visual Studio的全局服务提供程序。
这允许您使用Visual Studio的任何API来查找模板的数据,或操纵您包含的项目或类似的操作。
这样做的关键方案是使用CodeModel(或很快Roslyn)来解析项目中的实时源代码,并将其用作生成元数据的源。