12
<#@ template debug="false" hostspecific="false" language="C#" #>

hostspecific 属性在这里表示什么。

4

2 回答 2

8

hostspecific 设置为“true”的模板可以访问this.Host类型ITextTemplatingEngineHost( MSDN ) 的成员。然后,您可以使用例如它的方法“ResolvePath”来定位模板中输入所需的文件。

当您使用自定义模板引擎时,这更加有用。请在此处查看 Oleg 的博客:http ://www.olegsych.com/2008/02/t4-template-directive/

于 2013-03-14T12:54:51.740 回答
5

设置 HostSpecific 标志后,您可以使用“this.Host”属性,该标志的类型为 ITextTemplatingEngineHost,并允许您进行文件路径解析等。

但是,在 Visual Studio 中使用时(不是在构建时或从命令行),您还可以将主机强制转换为 IServiceProvider 并连接到 Visual Studio 的全局服务提供程序。

这允许您使用任何 Visual Studio 的 API 来为您的模板查找数据,或操作您包含的项目或类似操作。

这实现的一个关键场景是使用 CodeModel(或很快的 Roslyn)来解析项目中的实时源代码,并将其用作生成元数据的源。

于 2013-03-15T20:04:46.457 回答