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