0

我需要编写一个使用动态实体框架 DbContext 生成的网站内容管理系统。作为输入,我得到一个自定义数据类型声明(在 xml 中),我的 C# 代码知道如何解析。在输出中,我需要获取 DbContext 的代码,该代码将提供一种工具来将提供的数据类型实例作为 DbSet 存储在数据库中。

我可以看到 .tt -> .cs Generator 以 Visual Studio 插件的形式存在。我当然可以创建代码,从我的自定义声明中生成一个基于 xml(我假设它是).tt 模板,然后为这个 .tt 生成一个 .cs DbContext。但是如何从代码手动运行 .tt->.cs 转换?

4

1 回答 1

0

通常 T4 模板在设计时在 Visual Studio 中进行转换。如果要在运行时使用 T4 模板,请将 .tt 的 Project 项的“自定义工具”属性的值更改为“TextTemplatingFilePreprocessor”。

这将使 Visual Studio 从您的 T4 模板创建一个可以在运行时实例化的 C# 类,您可以在其中将参数传递给它(例如您的 xml 类型声明)。调用“ TransformText() ”将返回包含数据类的 T4 模板的实际输出代码。

为了在运行时也使用这些类,您需要在内存中编译输出代码。

于 2013-05-02T07:52:10.077 回答