如何正确地逃避这个字符串

Rot*_*tem 7 c# string

我有一个字符串,我发送到外部打印功能.
我需要用反斜杠填充字符串,以便正确打印.

具体来说,我需要一个接受此示例输入的方法:
This is a string\nwith a line break\ta tab\rand a carriage return.

并输出:
This is a string\\nwith a line break\\ta tab\\rand a carriage return.

我是否需要Replace对它的每个可能的逃脱角色进行暴力攻击?

尝试:
s.Replace("\\","\\\\") 不起作用,因为它正在寻找一个反斜杠文字.

s.Replace("\n","\\n") 显然有效,但我正在寻找的是一种通用的方法.

编辑: 请不要建议暴力方法,我明白实施这样的方法没问题.我的问题是,是否有更普遍的方法.

cae*_*say 12

private static string EscapeLiterals(string input)
{
    using (var writer = new StringWriter())
    {
        using (var provider = CodeDomProvider.CreateProvider("CSharp"))
        {
            provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null);
            return writer.ToString();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

接受输入"\tHello\r\n\tLiterals!"并将其转换为"\\tHello\\r\\n\\tLiterals!"

适用于任何输入 - 它将为您提供任何输出的转义序列.