la mejor manera de almacenar información similar a un árbol en app.config
Pregunta
¿Cuál sería la mejor manera de almacenar un árbol como el siguiente en app.config y cómo deserializaría esta información de él?
Tree
|-node1-
| |-name - value
| |-name - value
| | ......
|-node2-
| |-name - value
| |-name - value
| | ......
|-node3-
| |-name - value
| |-name - value
| | ......
Puedo convertir ese árbol a xml si eso ayuda.
Gracias por cualquier ayuda por adelantado.
Solución
Use una sección de configuración personalizada. Para ver una forma de hacerlo, consulte Diseñador de la sección de configuración . Puede hacerlo manualmente, pero le gustaría jugar con CSD y ver el código que genera.
Otros consejos
Puede extender .config con sus propios tipos. Estos pueden ser elementos que contienen otros elementos y atributos. Esta área parece estar pobremente documentada, pero hay ejemplos por ahí.
Comience con la clase System.Configuration.ConfigurationElement
.
Puede usar un documento basado en xml dentro de su aplicación con la extensión .config (como NLog.config, ...) y usar un proveedor de datos personalizado para leer los datos xml y convertirlos en ds con forma de árbol.
<Nodes>
<Node Name="Node1" Value="Value1">
<Node Name="Node1.1" Value="Value1.2">
</Node>
<Node Name="Node1.2" Value="Value1.2">
</Node>
</Node>
<Node Name="Node2" Value="Value2">
</Node>
</Nodes>
o puede usar una sección de configuración personalizada