¿Cuál es la mejor manera de almacenar pares de valores clave agrupadas en un archivo?
-
16-09-2019 - |
Pregunta
Actualmente sólo tengo un archivo como este que yo analizo de forma manual en un diccionario:
str1=Hello
str2=World
Esto ya no es práctico por varias razones:
- Necesito listas de cadenas que puedo tener acceso por el índice
- Quiero dividir los pares de valores clave en grupos
Considero que el uso de XML ahora porque:
- Bueno para pares de valores clave y grupos
- Me podría usar clases y serializarlos, eliminando los errores de ortografía
Pero (suponiendo que utilizo clases con número de serie):
- Tendría que crear una gran cantidad de nuevas clases para mapear la estructura del documento
- Diccionarios necesitan ser atendidos especialmente debido a que el general no puede ser serializado
¿Usted recomienda este enfoque? Debería utilizar la clase XmlDocument en su lugar? ¿Hay algún otro formato que tiene bibliotecas libres para .NET?
Quiero usar esto para la localización de una aplicación.
Solución
.NET tiene soporte basado en los recursos bastante sólido para localización , por lo que podría ver en eso.
Si realmente quiere inventar su propio formato de almacenamiento de recursos, les gustaría sugerir a mirar más de cerca JSON como formato de serialización (hay un montón de bibliotecas .NET manejarlo) o en YAML (no estoy seguro si hay analizadores .NET decente): ambos son mucho más simples en el ojo (si eso es lo que buscas) <. / p>
Otros consejos
archivo CSV sería agradable y compacto.
XmlDocument
No utilice XmlDocument a menos que sea absolutamente necesario. Está optimizado para la construcción de XML no leerlo. http://www.mattberther.com/2004/06/16 / XmlDocument-vs-XPathNavigator / Utilizar un XmlReader o un XPathNavigator. Si está leyendo en clases considerar hacer una serializar directo con XMLSerializer.
XML frente archivo plano
Sólo utilice XML si va a crear una jerarquía de objetos. Desde su descripción una simple línea por línea de leer de un archivo de texto sería suficiente. A continuación, puede dividir en la primera aparición de “=” y leerlo en un diccionario, una lista o una estructura personalizada. Será más rápido que el XML y más fácil de mantener.
Ortografía
No creo XML le ayuda con errores ortográficos.
Ubicación
se debe hacer con los archivos de recursos Echa un vistazo aquí http://www.codeproject.com/KB/dotnet/Localization. aspx o en SO https://stackoverflow.com/questions/tagged/localization+.net