Rog*_*erS 28 .net c# configuration app-config escaping
我有一个配置文件myapp.exe.config.在文件中,我有一个带有完整路径文件名的属性作为值.
<add key="InfoFile" value="c:\temp\info.txt" />
Run Code Online (Sandbox Code Playgroud)
如果我使用单反斜杠,它似乎有效.那是,
<add key="InfoFile" value="c:\\temp\\info.txt" />
Run Code Online (Sandbox Code Playgroud)
也有效.这样做的正确方法是什么?
Mat*_*zer 25
你不需要那个.属性值中的任何内容都是字符数据.
由于您使用C#读取这些值,因此它们将被转义,就好像它们是代码中的文字路径字符串一样.
无论如何,您可能想知道C#有@
运算符来声明逐字字符串,这意味着在代码中使用文字路径时不需要转义反斜杠:
string somePath = @"C:\blah\blih\bluh.txt";
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 18
反斜杠在XML中没有特殊含义,因此不应对它们进行转义.
此外,如果您要使用XML来逃避反斜杠,您将不会\\
使用\
.
它与双反斜杠一起使用的原因还在于文件系统是宽容的.您可以使用该路径c:\\temp\\info.txt
来访问该文件c:\temp\info.txt
.