C# WinForm中app.config字符串内&字符无法正常使用的问题
为什么app.config里的&字符会导致配置失效?
这个问题我太熟了!你遇到的是XML语法的特殊字符限制——在XML文件里,&是一个保留的特殊字符,它被用来表示XML实体引用(比如<代表<,>代表>)。当你直接在配置项的属性值里写&password=时,XML解析器会误以为你要开始一个实体引用,但后面并没有跟着合法的实体名称(比如amp、lt这些),所以会抛出解析错误,导致整个配置无法正常加载。
解决方法:用XML实体转义&字符
把属性值里的&替换成它的XML实体&就可以了,修改后的配置代码如下:
<configSections> <sectionGroup name="API"> <section name="loginURL" type="System.Configuration.SingleTagSectionHandler"/> </sectionGroup> </configSections> <API> <loginURL url="http://test.fr:81/api/sm?" param1="name=" param2="&password="/> </API>
这样XML解析器就能正确识别这个字符,把它当作普通的&来处理,你的配置项就能正常生效啦。
另外补充一点:除了&,XML里还有几个需要转义的特殊字符,分别是:
<→<>→>"→"'→'&→&
如果以后在配置里用到这些字符,记得都用对应的实体转义哦。
内容的提问来源于stack exchange,提问作者MrB3NiT0
相关产品推荐
相关产品推荐

