2011-09-29 112 views

回答

1
Regex.Escape("foo\nbaa\ttest") 
+0

+1打我几秒钟! –

+0

@Ahmad我看到了,但你有一个更完整的答案。 –

3

查看Can I convert a C# string value to an escaped string literal的回答。他写了这个扩展方法,做你想要什么:

static string ToLiteral(string input) 
{ 
    var writer = new StringWriter(); 
    CSharpCodeProvider provider = new CSharpCodeProvider(); 
    provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null); 
    return writer.GetStringBuilder().ToString(); 
} 
0

综观普遍的问题 - 重建一些源代码 - 没有对C#没有语言选项,它可以让你这样做自动的。

但是(这是我的理论),您应该可以使用表达式来达到IL等效(可能使用Reflection.EmitMono.Cecil库)。您可以怀疑然后使用ILSpy项目的库重建C#。