我是否需要在配置文件中转义反斜杠?
我有一个配置文件myapp.exe.config。 在文件中,我有一个带有完整路径文件名的属性作为值。
如果我使用单反斜杠,它似乎有效。 那是,
也有效。 这样做的正确方法是什么?
你不需要那个。 属性值中的任何内容都是字符数据。
由于您使用C#读取这些值,因此它们将被转义,就好像它们是代码中的文字路径字符串一样。
无论如何,您可能想知道C#有@
运算符来声明逐字符串,这意味着在代码中使用文字路径时不需要转义反斜杠:
string somePath = @"C:\blah\blih\bluh.txt";
反斜杠在XML中没有特殊含义,因此不应对它们进行转义。
此外,如果你要以XML格式转义反斜杠,你就不会使用\\
,你会使用\
。
它与双反斜杠一起使用的原因还在于文件系统是宽容的。 您可以使用路径c:\\temp\\info.txt
来访问文件c:\temp\info.txt
。
基本上URL或URI保持单斜杠\
所以,最好使用单斜杠。 编写代码时出现问题,但在XML中使用单斜杠没有问题。
我认为最好是防止双反斜杠,以防万一,但如果它有效,为什么要改变它。 当您将配置值读入应用程序时,可能将“\\”替换为“\”。