交互式 T4 模板

Interactive T4 Templates

我在我的大多数 MVC 项目中使用了一组 T4 模板,这些模板创建了一组管理器(想想存储库)、ViewModels 和扩展 - 实用程序扩展方法,例如 ToModel()、ToViewModel() 和 ToSelectList( ).到目前为止,一切都很好。现在为我编写了大量基本 'plumbing' 代码。

我真正喜欢的是能够从外部文件配置这些模板中使用的变量,然后让模板在执行时使用该文件。

我知道我可以 运行 来自另一个 T4 模板,但我找不到在单独文件中添加配置的方法。

目前,我在我的数据库中包含一个 'Entity' table 并将其用于配置。它可以工作,但是将它放在数据库中感觉很脏。

T4 最后只是 C#/VB.Net 代码,您几乎可以使用任何您想要的库。如果你想要一个外部配置文件,你可以使用 json.net and a simple json file in your project. At the start of your template, use the file io in the framework to read your json files contents, pass that to json.net and then extract the parameters you need. The most common way to use json.net is to serialize and deserialize classes but it also gives you access to a lower json dictionary like object,你可以使用 linq 从 json 中获取你需要的任何数据。

但请记住,解决问题的方法总是不止一种,这是我一段时间以来一直在努力解决的问题。我的首选解决方案是我创建的名为 T4 Awesome 的扩展。我的扩展采用完全不同的方法在 Visual Studio 中使用 T4 作为脚手架。我在 IDE 周围添加了多个工具 windows 和上下文菜单,以便更快、更轻松地管理和使用 T4 模板。我有一个动态 UI 可以让您定义简单的参数并将它们传递给您的模板,还可以让您更好地控制最终输出文件的位置。请随时查看。完全免责声明,我对这个扩展收费,但有一个免费的社区版本,应该能够做你想做的事。