Unterstützen ConfigurationManager XML Elements Arrays?
-
22-12-2019 - |
Frage
Ich verwende Configuration Manager, um Einstellungen in einer C#-Anwendung zu speichern.Ich habe einige individuelle Einstellungen und ich habe eine variable Reihe von Einstellungen.
Die XML-Konfiguration sieht in etwa so aus:
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
<appSettings>
<add key="Option" value="Tabbed" />
<add key="Version" value="0.0.0.0" />
<Tee1>
<add key="Name" value="Test1" />
<add key="IPAddress" value="127.0.0.1" />
<add key="Port" value="58323" />
<add key="AutoConnect" value="True" />
<add key="Link" value="False" />
<add key="Link" value="False" />
</Tee1>
<Tee2>
<add key="Name" value="Test2" />
<add key="IPAddress" value="127.0.0.1" />
<add key="Port" value="58324" />
<add key="AutoConnect" value="True" />
<add key="Link" value="False" />
<add key="Link" value="False" />
</Tee2>
<Tee3>
<add key="Name" value="Test3" />
<add key="IPAddress" value="localhost" />
<add key="Port" value="58325" />
<add key="AutoConnect" value="False" />
<add key="Link" value="True" />
<add key="Link" value="False" />
</Tee3>
<Tee4 />
<Tee5 />
<Tee6 />
<Tee7 />
<Tee8 />
<Tee9 />
<Tee10>
<add key="Name" value="Test10" />
<add key="IPAddress" value="127.0.0.1" />
<add key="Port" value="58332" />
<add key="AutoConnect" value="False" />
<add key="Link" value="False" />
<add key="Link" value="False" />
</Tee10>
</appSettings>
</configuration>
Die Tee-Einträge ohne Daten sind Null-Elemente.
Wenn ich den generierten XML-Text in den Visual Studio 2010-Editor lade, wird angezeigt, dass TEE1 einen Fehler aufweist.
„Das Element ‚appSettings‘ hat ein ungültiges untergeordnetes Element ‚Tee1‘.Liste der möglichen erwarteten Elemente:„hinzufügen, entfernen.“Klar'."
Wie soll ich eine Reihe ähnlicher Elemente darstellen?
Lösung
Sie können nur speichern key=value
Einstellungen in <appSettings>
.Wenn Sie etwas Umfangreicheres wünschen, müssen Sie einen benutzerdefinierten Konfigurationsabschnittshandler schreiben.
Siehe zum Beispiel: