2008-12-17 103 views
1

我想使用T4为部分类生成属性。我遇到了配置问题,我的.TT文件与我想要扩展的类文件位于同一个项目中。因此,如果我必须将程序集包含在.TT文件中,它会被锁定。我试图在预编译中执行一个命令行,但问题在于VS总是希望用该项目重新编译.TT文件。如何使用T4和Visual Studio扩展部分类

我能想到的唯一解决方案是将.tt文件重命名为.t4,然后使用带TextTransform -out的预生成命令在项目目录中创建.cs文件。

任何人都可以想到一个更清洁的方式来做到这一点?

回答

3

假设锁定是由您的模板使用反射来读取需要扩展的部分类的元数据引起的,如果您使用CodeModel,则可以解决锁定问题。此API由Visual Studio提供,可让您直接从源文件获取元数据,而无需编译分部类或加载编译的DLL。以下是使用此方法的T4代码生成器的一个示例:http://www.olegsych.com/2008/07/t4-template-for-generating-sql-view-from-csharp-enumeration

+0

谢谢Oleg。我马上试试这个。 – GoClimbColorado 2009-01-03 16:12:02