Me gustaría guardar un unidimensional de matriz de cadena como una entrada en mi appSettings. Simplemente no me puedo separar elementos con , o | debido a que los elementos pueden contener los caracteres.

Yo estaba pensando en el almacenamiento de la matriz como JSON luego deserializar mediante el JavaScriptSerializer.

Existe un «derecho» /una mejor manera de hacer esto?

(Mi JSON idea siente un poco chapucero)

  • Recomiendo la Newtonsoft JSON cosas, si ir por ese camino…
InformationsquelleAutor Greg | 2012-05-02

4 Comentarios

  1. 23

    Podría utilizar el AppSettings con un Sistema.Las colecciones.Especializados.StringCollection.

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

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

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

    Tienda de Matriz de Cadena En appSettings?

    • Este puede ser utilizado para los números enteros?
    • sólo si se convierte a int: int[] ints = new int[strings.Count]; for(int i = 0; i < strings.Count; i++) ints[i] = int.Parse(strings[i]);
    • Me parece encontrar una respuesta mejor y publicado a continuación. Gracias @Tim
  2. 10

    Para enteros he encontrado la siguiente manera rápida.

    Primero de todo, crear un appSettings clave con valores enteros separados por comas en su aplicación.config.

    <add key="myIntArray" value="1,2,3,4" />

    A continuación, dividir y convertir los valores en la matriz int utilizando LINQ

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

    Para las cadenas es fácil, basta con añadir el siguiente a su web.config de archivo:

    <add key="myStringArray" value="fred,Jim,Alan" />

    y, a continuación, puede recuperar el valor en una matriz como la siguiente:

    var myArray = ConfigurationManager.AppSettings["myStringArray"].Split(',');
    • Did you mean [...] alrededor de "MyStringArray", no (...), o me estoy perdiendo algo?
    • Debe ser var myArray = ConfigurationManager.AppSettings["MyStringArray"].Split(',');
  4. 5

    También puede considerar el uso de la sección de configuración personalizada/Colección para este propósito.
    He aquí un ejemplo:

    <configSections>
        <section name="configSection" type="YourApp.ConfigSection, YourApp"/>
    </configSections>
    
    <configSection xmlns="urn:YourApp">
      <stringItems>
        <item value="String Value"/>
      </stringItems>
    </configSection>

    También se puede comprobar en este excelente Complemento de Visual Studio que permite diseñar de forma gráfica .NET Secciones de Configuración y automáticamente genera todo el código necesario y una definición de esquema (XSD) para ellos.

Dejar respuesta

Please enter your comment!
Please enter your name here