[英]Encasing a filename inside an app.config file using C#
是否可以将文件名包含在app.config文件中并在代码中使用它们?
例如,此代码完美地运行:
string folder = @"C:\CDR_FTP1\ttfiles_exported\";
如果我想从app.config文件中获取上述值
例如,在app.config中,我可以尝试这样的事情:
<add key="InputDir" value=@"D:\CDR_FTP1\ttfiles_exported\" />
我无法添加“@”,因为它会给我以下错误:
"The character '@', hexadecimla value 0x40 is illegal at the beginning of an XML name."
如果我尝试在我的代码中使用它,如下所示,那很好,但是我需要在哪里以及如何使用“@”让应用程序正确读取它?
string folder = ConfigurationSettings.AppSettings["InputDir"];
只需使用:
<add key="InputDir" value="D:\CDR_FTP1\ttfiles_exported\" />
在XML属性中无需转义\\
。
扩展基里尔的答案:
XML属性中的特殊字符与C#字符串中的特殊字符不同。
在C#中,字符'\\'是字符串转义字符,用于表示转义符号的'\\ n'等转义序列,正如您可能知道的那样; 因此需要以'\\\\'或使用@“”进行转义。
在XML中,'''在属性值中没有特殊含义,可以按原样使用。 对于'&'和'''字符等,情况并非如此。如果您想要包含该值:
M & M "The chocolates"
在app.config中,他们必须进行转义,以便:
<add key="SomeString" value="M & M "The chocolates"" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.