我正在尝试创建一个T4模板,该模板继承自另一个在单独程序集中的模板。 问题是,如果我使用TextTemplatingFileGenerator自定义工具(也将模板指令的visibility属性设置为true),则不会生成引用程序集中的T4模板,但仅当我使用TextTemplatingFilePreprocessor自定义工具时才会生成。
我是以错误的方式使用它吗?我应该使用不同的技术(包括或建议的here)吗?
更新
评论中要求的方案的一些细节: 在我的公司,我们需要一个可重用的框架来生成对象之间的转换器/映射器(通常是数据库实体到DTO,反之亦然)。
我们已经厌倦了隐藏内部工作的框架,并且通常会导致运行时异常,特别是对于集合。
我想定义一个在数据映射项目中重用的模板,我们通过反射从另一个程序集中定义对象,并使用映射扩展方法生成静态类。
由于 弗朗西斯
答案 0 :(得分:2)
如果您想在第一个程序集中将模板用作独立模板并在第二个程序集中继承模板,那么最好在第一个程序集中创建两个模板。
对于第一个模板,使用TextTemplatingFileGenerator并包含实际的模板文本。 对于第二个模板,使用TextTemplatingFilePreprocessor并使内容只是一个<#@ include#>指令包含第一个模板文件。