2009-08-12 105 views
0

我最近实现了一个快速T4模板来在我们的应用程序中生成一些与数据访问相关的类(Thanks Oleg)。我面临的一个问题是,我的模板确实需要从作为解决方案一部分的XML文件中读取数据。T4,XML数据源和Visual Studio 2008中的相对路径

显然,XML数据的路径必须是相对的。但是,当我昨天首次实施它时,它看起来像从解决方案根目录的父项开始。今天,它想从解决方案根目录开始。虽然解决方案根目录更有意义,但我想知道是否有人有正式答案。

也许有人有更好的,更正式的方式来读取文件中的数据与T4的代码。

Regards,

Eric。

回答

2

Oleg仍然是解决此问题的朋友。请参阅他的文章Understanding T4: <#@ template #> directive,特别是描述hostspecific参数的部分。

在模板指令中设置hostspecific =“True”会导致Host属性可用于T4代码。 Host属性的类型为ITextTemplatingEngineHost,其中(除其他文档记录不佳之外)声明了一个ResolvePath方法,您可以使用该方法来解析相对于模板文件位置的路径。

再次,道具奥列格!

+0

丹,谢谢你的回复。我很抱歉,不早就感谢你。我从来没有得到(或注意到)答复,只是在寻找别的东西时才发现它。它确实回答我的问题,我感谢你的时间。 – 2009-10-16 21:26:00