¿Los elementos XML de ConfigurationManager admiten matrices?
-
22-12-2019 - |
Pregunta
Estoy usando Configuration Manager para almacenar configuraciones en una aplicación C#.Tengo algunas configuraciones individuales y tengo una matriz variable de configuraciones.
La configuración XML se parece a esto:
<?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>
Las entradas de Tee sin datos son elementos nulos.
Cuando cargo el texto XML generado en el editor de Visual Studio 2010, muestra que TEE1 tiene un error.
“El elemento 'appSettings' tiene un elemento secundario 'Tee1' no válido.Lista de posibles elementos esperados:'agregar eliminar.Claro'."
¿Cómo debo representar una serie de elementos similares?
Solución
Sólo puedes almacenar key=value
ajustes en <appSettings>
.Si desea algo más completo, deberá escribir un controlador de sección de configuración personalizado.
Véase, por ejemplo: