App.config中的String.Format值产生一个额外的反斜杠

时间:2009-08-26 14:07:04

标签: c# app-config string-formatting

以下是App.Config中的一行:

<add key="CheckFileFormatString" value="P{0}\t&quot;{1}, {2}&quot;\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t{9}\t{10}"/>

以下是将其放入字符串的代码(请忽略已弃用的.AppSettings.Get调用,除非这是问题):

string format = ConfigurationSettings.AppSettings.Get("CheckFileFormatString");

...这里是结果字符串:

P{0}\\t\"{1}, {2}\"\\t{3}\\t{4}\\t{5}\\t{6}\\t{7}\\t{8}\\t{9}\\t{10}

来自哪里的额外反斜杠?

2 个答案:

答案 0 :(得分:6)

\ t是C#etc中选项卡的符号,但在XML中不是这种情况。你的\ t被解释为两个字符。尝试用配置文件中的&#09;替换\ t。

答案 1 :(得分:1)

额外的反斜杠来自调试器显示值的方式。

字符串值的移位方式与在代码中将其写为字符串文字的方式相同,因此字符串中的每个反斜杠都显示为\。

字符串中的反斜杠来自XML值,因为反斜杠不是XML中的转义字符。正如Richard解释的那样,您需要使用&#09;来获取XML值中的制表符。

相关问题