Store String Array Em appSettings?

Gostaria de armazenar uma matriz de strings unidimensionais como uma input em minhas appSettings . Eu não posso simplesmente separar elementos com ou | porque os elementos em si podem conter esses caracteres.

Eu estava pensando em armazenar o array como JSON depois desserializá-lo usando o JavaScriptSerializer .

Existe uma maneira “certa” / melhor para fazer isso?

(A minha ideia de JSON parece meio hacky)

Você pode usar o AppSettings com um System.Collections.Specialized.StringCollection .

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

Cada valor é separado por uma nova linha.

Aqui está uma captura de canvas (alemão IDE, mas pode ser útil mesmo assim)

insira a descrição da imagem aqui

Para inteiros, achei o seguinte caminho mais rápido.

Primeiro de tudo, crie uma chave appSettings com valores inteiros separados por vírgulas no seu app.config.

  

Em seguida, divida e converta os valores em array int usando LINQ

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

Você também pode considerar o uso da seção / coleção de configuração personalizada para essa finalidade. Aqui está uma amostra:

  

Você também pode verificar esse excelente complemento do Visual Studio que permite projetar graficamente as seções de configuração .NET e gerar automaticamente todo o código necessário e uma definição de esquema (XSD) para eles.

Para strings é fácil, basta adicionar o seguinte ao seu arquivo web.config :

  

e, em seguida, você pode recuperar o valor em uma matriz da seguinte maneira:

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