如何在 App.Config 中编写 URI 字符串
Posted
技术标签:
【中文标题】如何在 App.Config 中编写 URI 字符串【英文标题】:How to write an URI string in App.Config 【发布时间】:2012-09-23 01:03:42 【问题描述】:我正在制作Windows Service
。 Service
必须每晚下载一些东西,因此我想将 URI 放在 App.Config 中,以防我以后需要更改它。
我想在我的 App.Config 中编写一个 URI。是什么使它无效,我应该如何处理?
<appSettings>
<add key="fooUriString"
value="https://foo.bar.baz/download/DownloadStream?id=5486cfb8c50c9f9a2c1bc43daf7ddeed&login=null&password=null"/>
</appSettings>
我的错误:
- Entity 'login' not defined
- Expecting ';'
- Entity 'password' not defined
- Application Configuration file "App.config" is invalid. An error occurred
【问题讨论】:
***.com/questions/1328538/… 转义符 【参考方案1】:您没有正确编码 URI 中的 & 符号。记住app.config
是一个XML文件,所以你必须符合XML的转义要求(例如&amp;
应该是&amp;
,&lt;
应该是&lt;
和&gt;
应该是&gt;
)。
在你的情况下,它应该是这样的:
<appSettings>
<add
key="fooUriString"
value="https://foo.bar.baz/download/DownloadStream?id=5486cfb8c50c9f9a2c1bc43daf7ddeed&login=null&password=null"
/>
</appSettings>
但一般来说,如果您想存储一个看起来像 "I <3 angle bra<kets & ampersands >>>"
的字符串,请执行以下操作:
<appSettings>
<add
key="someString"
value="I <3 angle bra<kets & ampersands >>>"
/>
</appSettings>
void StringEncodingTest()
String expected = "I <3 angle bra<kets & ampersands >>>";
String actual = ConfigurationManager.AppSettings["someString"];
Debug.Assert.AreEqual( expected, actual );
【讨论】:
感谢各位的回答。你是第一个,所以我会在几分钟内接受你的,当 SO 诸神也允许我时。【参考方案2】:&amp;
应该可以正常工作,***有一个List of predefined entities in XML。
【讨论】:
【参考方案3】:尝试使用:&amp;
代替网址中的 &
【讨论】:
以上是关于如何在 App.Config 中编写 URI 字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中更新 app.config 连接字符串数据源值?
如何在 C# 中使用 app.config 文件定义连接字符串 [重复]