使用 C# 运行 T4 模板

发布于 2024-10-13 12:32:36 字数 339 浏览 9 评论 0原文

我有 T4 模板(mycode.tt),它生成一个 cs 文件。我通常右键单击 tt 文件并选择 RunCustomTool,它会在内部获取 xml 文件并为我生成代码。现在我想使用 ac# windows 应用程序运行自定义工具。因此,单击按钮我想运行自定义工具。是否可以从 c# 运行 CustomTool。

编辑:

我有 2 个 tt 文件,其中一个没有代码隐藏 cs 文件。但另一个文件附加了一个 .cs 文件,我正在从第一个 .tt 文件调用第二个文件的 TransformText() 方法。所以我需要调用第一个文件。所以我不能使用 TransformText() 方法。有没有办法动态调用textTemplate文件?

I have T4 template (mycode.tt) which generates a cs file. I usually right click the tt file and select RunCustomTool which internally takes an xml file and generate code for me. Now i want to run the custom tool using a c# windows application. So onclick of a button i want to run the Custom Tool . Is it possible to run the CustomTool from c#.

Edit:

I have 2 tt files and one of them doesn't have a codebehind cs file. But another has a .cs file attached with it and i am invoking the second file's TransformText() method from the first .tt file. So i need to invoke the first file.So i cannot use the TransformText() method. Is there a way to dynamically call the textTemplate file ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吾性傲以野 2024-10-20 12:32:36

使用VS2010就可以轻松实现。如果将新文件添加到项目中,请选择预处理的文本模板文件。您可以像平常一样编辑模板。该文件不是直接生成输出,而是生成正常生成的代码。我知道这听起来很混乱。但您在输出文件中看到的是文本模板工具包生成的代码,用于获取输出(或多或少)。

这是一个名为“TestTemplate.tt”的预处理文本模板的简短示例,以及如何在代码中使用它:

tt 文件:

<#@模板语言=“C#”#>
一些输出。

代码:

使用系统;
使用系统诊断;

命名空间测试
{
    班级计划
    {
        静态无效主(字符串[]参数)
        {
            测试模板 testTemplate = new TestTemplate();
            调试.Print(testTemplate.TransformText());
        }
    }
}

You can easily achieve it, when you using VS2010. If you add a new file to the project, choose a preprocessed text template file. You can edit the template just as normal. Instead of generating the output directly, the file generates the code that is generated normally. I know it sounds confusing. But what you see in your output file is the code generated by the text templating toolkit to get your output (more or less).

This is a short example of a preprocessed text template named "TestTemplate.tt" and how do you use it in your code:

The tt-file:

<#@ template language="C#" #>
Some output.

Code:

using System;
using System.Diagnostics;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            TestTemplate testTemplate = new TestTemplate();
            Debug.Print(testTemplate.TransformText());
        }
    }
}
谁的新欢旧爱 2024-10-20 12:32:36

我建议使用 @jb_ 上面回答的预处理路线。

作为替代方案,如果您需要模板在没有编译步骤的情况下仍可编辑,以便与自定义 C# 应用程序一起使用,并且该应用程序仅与 Visual Studio 一起部署在计算机上,则可以编写自定义主机。

http://msdn.microsoft.com/en-us/library/bb126519.aspx

I'd recommend the preprocessed route as answered above by @jb_.

As an alternative, if you need your templates to still be editable without a compile step for use with your custom C# application, and the application will only be deployed on machines alongside Visual Studio, you can write a custom host.

http://msdn.microsoft.com/en-us/library/bb126519.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文