Visual Studio T4 模板替换 class 文件中的文本

Visual Studio T4 template replace text in class file

我想知道如何创建可以在 class 文件中查找和替换字符串的 T4 模板。

例如:
我有一个名为 "Test.cs" 的 class 文件,它是由其他进程自动生成的。
我想 运行 一个针对 "Test.cs" 文件的 T4 模板,它将重命名它找到的所有 "OldText" 文本为 "NewText"

Test.cs 在 T4 模板具有 运行 之前。

public class OldText 
{ 
    public OldText() {} 
}

Test.cs 在 T4 模板具有 运行 之后。

public class NewText 
{ 
    public NewText() {} 
}

正如 Jeroen 所指出的,这不是 t4 模板的用途。但是,您可以考虑编写一个 t4 模板,它会为您生成 Test.cs,其中实际的 class 名称将存储在一个变量中。您的 Test.tt 可能如下所示:

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
<#
    var className = "OldText";
#>
using System;

public class <#= className #>
{ 
    public <#= className #>() {} 
}

然后,要使用 class 名称 NewText 生成 Test.cs,您只需在一个地方更改 className 变量的值。