T4 模板 C# - 在生成的代码中保留带有 \n \r .. 的常规字符串
T4 Template C# - Keep regular string with \n \r .. in the generated code
我正在使用 T4 (C#) 在 运行 时生成一些代码。然后我将生成的代码存储在一个字符串中,该字符串是另一个模板的一部分。最终模板中的相关代码如下所示:
string myFinalString = @"<#=GetGeneratedCode()#>";
其中 GetGeneratedCode()
是:
public string GetGeneratedCode()
{
MyTemplate temp = new MyTemplate (); //<- another T4 template
return temp.TransformText();
}
MyTemplate.TransformText
returns 类似于下面的代码:
MyClass
{
int myVar1;
string myVar2;
}
问题是在我生成的源文件中,字符串 myFinalString
设置如下:
string myFinalString = @"MyClass
{
int myVar1;
string myVar2;
}";
为了可读性,我更愿意生成如下的常规字符串:
string myFinalString = @"MyClass\r\n{\r\n int myVar1;\r\n string myVar2;\r\n}";
谁能帮我解决这个问题?
转义 \r
和 \n
字符应该有效。试试这个:
public string GetGeneratedCode()
{
MyTemplate temp = new MyTemplate (); //<- another T4 template
return temp.TransformText().Replace(Environment.NewLine, "\r\n");
}
也可以使用逐字符号:@"\r\n"
我正在使用 T4 (C#) 在 运行 时生成一些代码。然后我将生成的代码存储在一个字符串中,该字符串是另一个模板的一部分。最终模板中的相关代码如下所示:
string myFinalString = @"<#=GetGeneratedCode()#>";
其中 GetGeneratedCode()
是:
public string GetGeneratedCode()
{
MyTemplate temp = new MyTemplate (); //<- another T4 template
return temp.TransformText();
}
MyTemplate.TransformText
returns 类似于下面的代码:
MyClass
{
int myVar1;
string myVar2;
}
问题是在我生成的源文件中,字符串 myFinalString
设置如下:
string myFinalString = @"MyClass
{
int myVar1;
string myVar2;
}";
为了可读性,我更愿意生成如下的常规字符串:
string myFinalString = @"MyClass\r\n{\r\n int myVar1;\r\n string myVar2;\r\n}";
谁能帮我解决这个问题?
转义 \r
和 \n
字符应该有效。试试这个:
public string GetGeneratedCode()
{
MyTemplate temp = new MyTemplate (); //<- another T4 template
return temp.TransformText().Replace(Environment.NewLine, "\r\n");
}
也可以使用逐字符号:@"\r\n"