sag*_*y36 4 .net c# xml filenames app-config
是否可以将文件名包含在app.config文件中并在代码中使用它们?
例如,此代码完美地运行:
string folder = @"C:\CDR_FTP1\ttfiles_exported\";
Run Code Online (Sandbox Code Playgroud)
如果我想从app.config文件中获取上述值
例如,在app.config中,我可以尝试这样的事情:
<add key="InputDir" value=@"D:\CDR_FTP1\ttfiles_exported\" />
Run Code Online (Sandbox Code Playgroud)
我无法添加"@",因为它会给我以下错误:
"The character '@', hexadecimla value 0x40 is illegal at the beginning of an XML name."
Run Code Online (Sandbox Code Playgroud)
如果我尝试在我的代码中使用它,如下所示,它很好,但是我需要在哪里以及如何坚持使用"@"让应用程序正确读取它?
string folder = ConfigurationSettings.AppSettings["InputDir"];
Run Code Online (Sandbox Code Playgroud)
只需使用:
<add key="InputDir" value="D:\CDR_FTP1\ttfiles_exported\" />
Run Code Online (Sandbox Code Playgroud)
无需\在XML属性中转义.
扩展基里尔的答案:
XML属性中的特殊字符与C#字符串中的特殊字符不同.
在C#中,字符'\'是字符串转义字符,用于表示转义序列,例如'\n'表示行尾,正如您可能知道的那样; 因此需要以'\\'或使用@""进行转义.
在XML中,'''在属性值中没有特殊含义,可以按原样使用.对于'&'和'''字符等,情况并非如此.如果您想要包含该值:
M & M "The chocolates"
Run Code Online (Sandbox Code Playgroud)
在app.config中,他们必须进行转义,以便:
<add key="SomeString" value="M & M "The chocolates"" />
Run Code Online (Sandbox Code Playgroud)