我使用T4(C#)在运行时生成一些代码。然后我将生成的代码存储在另一个模板的字符串中。最终模板中的相关代码如下所示:
string myFinalString = @"<#=GetGeneratedCode()#>";
其中GetGeneratedCode()
是:
public string GetGeneratedCode()
{
MyTemplate temp = new MyTemplate (); //<- another T4 template
return temp.TransformText();
}
MyTemplate.TransformText
返回类似于以下内容的代码:
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}";
任何人都可以帮我吗?
答案 0 :(得分:1)
转义\r
和\n
字符应该有效。试试这个:
public string GetGeneratedCode()
{
MyTemplate temp = new MyTemplate (); //<- another T4 template
return temp.TransformText().Replace(Environment.NewLine, "\\r\\n");
}
使用逐字符号也可以:@"\r\n"