Store String Array In appSettings?

Me gustaría almacenar una matriz de cadenas unidimensional como una entrada en mi appSettings . No puedo simplemente separar elementos con , o | porque los elementos mismos podrían contener esos caracteres.

Estaba pensando en almacenar la matriz como JSON luego deserializarla usando el JavaScriptSerializer .

¿Hay una forma “correcta” / mejor para hacer esto?

(Mi idea JSON siente un poco hacky)

Puede usar AppSettings con System.Collections.Specialized.StringCollection .

 var myStringCollection = Properties.Settings.Default.MyCollection; foreach (String value in myCollection) { // do something } 

Cada valor está separado por una nueva línea.

Aquí hay una captura de pantalla (IDE alemán pero podría ser útil de todos modos)

enter image description here

Para los enteros encontré la siguiente manera más rápido.

En primer lugar, cree una clave appSettings con valores enteros separados por comas en su app.config.

  

Luego divide y convierte los valores en int array usando LINQ

 int[] myIntArray = ConfigurationManager.AppSettings["myIntArray"].Split(',').Select(n => Convert.ToInt32(n)).ToArray(); 

También puede considerar usar la sección de configuración personalizada / Colección para este propósito. Aquí hay una muestra:

  

También puede verificar este excelente complemento de Visual Studio que le permite diseñar gráficamente las Secciones de Configuración de .NET y genera automáticamente todo el código requerido y una definición de esquema (XSD) para ellos.

Para cadenas, es fácil, simplemente agregue lo siguiente a su archivo web.config :

  

y luego puedes recuperar el valor en una matriz de la siguiente manera:

 var myArray = ConfigurationManager.AppSettings("myStringArray").Split(',');