如何编写T4文本模板来实现界面?

时间:2011-11-29 17:41:42

标签: interface t4

我有一个包含多个接口的项目,我想编写一个模板来生成实现这些接口的类(例如:如果我有2个接口,模板将生成2个类)。生成的类被放入特定的文件夹中。

目前,我有两个问题:
1.我的模板只生成一个包含许多类的文件 2.该类在文本模板下创建。

以下是我的代码:

<#@ template language="C#" #>
<#@ include file="EF.Utility.CS.ttinclude"#>
<#@ output extension=".cs"#>

<#
Assembly assembly = Assembly.LoadFrom(@"Example.dll");
Type[] types = assembly.GetTypes();
foreach (Type type in types)
{
    if (type.IsInterface)
    {
        string nameSpace = "Example.Client";
        string className = type.Name.TrimStart('I')";
        string interfaceName = type.Name;

#>

namespace <#= nameSpace #>
{
    public class <#= className #> : <#= interfaceName #>
    {
    }
}

<#
    }
}
#>

如何为特定文件夹生成多个类?你能帮帮我吗?

谢谢,

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

使用上面的模板,您只需将其放在该目录中的模板(.tt文件)中即可。如果您希望模板文件位于更高的目录中,请查看Oleg的http://www.olegsych.com/2008/03/how-to-generate-multiple-outputs-from-single-t4-template/注意SaveOutput()方法。