我最近实现了一个快速T4模板,以便在我们的应用程序中生成一些与数据访问相关的类(感谢Oleg)。我面临的一个问题是我的模板确实需要从作为解决方案一部分的XML文件中读取数据。
显然,XML数据的路径必须是相对的。但是当我昨天第一次实现它时,它似乎是从解决方案根目录的父开始的。今天,它想从解决方案根开始。虽然解决方案root 更有意义,但我想知道是否有人有正式答案。
也许某人有更好的,更官方的方式从T4的代码文件中读取数据。
此致
埃里克。
答案 0 :(得分:2)
Oleg仍然是您解决此问题的朋友。请参阅他的帖子Understanding T4: <#@ template #> directive,特别是描述hostspecific参数的部分。
在模板指令中设置hostspecific =“True”会导致您的T4代码可以使用Host属性。 Host属性的类型为ITextTemplatingEngineHost,其中(除了其他记录不完整的内容之外)声明了一个ResolvePath方法,您可以使用该方法来解析相对于模板文件位置的路径。
再一次,奥列格的道具!