Je fais un Windows Service
. Le Service
doit télécharger quelque chose tous les soirs, et je veux donc placer l'URI dans App.Config au cas où je devrais le changer plus tard.
Je veux écrire un URI dans mon App.Config. Qu'est-ce qui le rend invalide et comment dois-je l'aborder?
<appSettings>
<add key="fooUriString"
value="https://foo.bar.baz/download/DownloadStream?id=5486cfb8c50c9f9a2c1bc43daf7ddeed&login=null&password=null"/>
</appSettings>
Mes erreurs:
- Entity 'login' not defined
- Expecting ';'
- Entity 'password' not defined
- Application Configuration file "App.config" is invalid. An error occurred
Vous n'avez pas correctement codé les esperluettes dans votre URI. N'oubliez pas que app.config
est un fichier XML, vous devez donc vous conformer aux exigences XML pour l'échappement (par exemple &
devrait être &
, <
devrait être <
et >
devrait être >
).
Dans votre cas, cela devrait ressembler à ceci:
<appSettings>
<add
key="fooUriString"
value="https://foo.bar.baz/download/DownloadStream?id=5486cfb8c50c9f9a2c1bc43daf7ddeed&login=null&password=null"
/>
</appSettings>
Mais en général, si vous vouliez stocker une chaîne qui ressemblait à "I <3 angle bra<kets & ampersands >>>"
puis faites ceci:
<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 );
}
Essayez d'utiliser: &
à la place de & dans l'url
&
devrait très bien fonctionner, Wikipedia a un Liste des entités prédéfinies en XML .