Pergunta

Tenho trabalhado em meu software recentemente e tenho me perguntado qual é a melhor maneira de armazenar um array associativo.

A única coisa que consegui inventar do nada é fazer algo assim:

<add key="disks" value="C|1|10,D|2|20,E|1|5,Z|1|3"/>

Mas isso não oferece muita legibilidade em meu arquivo de configuração e quero que meu arquivo de configuração seja legível, pois é um aplicativo de console.

A razão para isso é que escrevi um programa que verifica o espaço em disco dos discos especificados no arquivo app.config, mas quero limites diferentes para discos diferentes.

Como você resolveria isso?Aqui está uma parte do meu arquivo de configuração atual.

<!-- DISK FEATURE SETTINGS -->
  <!-- Type 1 is threshold by percentage and type 2 is threshold by a certain limit -->
  <add key="threshold_type" value="1" />
  <add key="threshold_limit" value="0,1" />
  <!-- Space_type defines if you want to limit using kilobytes (1), megabytes (2) or gigabytes (3) if using threshold_type 2 -->
  <add key="space_type" value="3" />
  <!-- Put the disks here delimited by a comma like this: C,D,E -->
  <add key="disks" value="C,D,E,Z"/>
<!-- SERVICE FEATURE SETTINGS -->
  <!-- Put the services here delimited by a comma like this: C,D,E -->
  <add key="services" value="spooler,ekrn,RadeonPro Support Service,TeamViewer6"/>
  <!-- Put this on 1 if you want to log your output to a text file -->
  <add key="logging" value="1"/>

Quero usar o mesmo princípio para meu programa performancecounter que usa contadores perfmon para obter alguns dados e armazená-los em um arquivo de texto.

Espero que as pessoas possam me ajudar um pouco aqui :)

Foi útil?

Solução

Sugiro que você crie sua própria seção de configuração.A configuração personalizada oferece mais legibilidade e segurança de tipo.Aqui estão links para criar configurações personalizadashttp://msdn.microsoft.com/en-us/library/2tw134k3.aspx ehttp://haacked.com/archive/2007/03/11/custom-configuration-sections-in-3-easy-steps.aspx (antigo, mas fácil de seguir).

Outras dicas

Na medida em que o mecanismo de configuração padrão funciona com serialização XML, a melhor (e, IMHO, a mais sábia) maneira de armazenar dicionários em App.config é um List<KeyValuePair<K,V>>.

você pode querer usar Hashtable de system.collection ou List<>

abaixo estão algumas dicas para hashtable,http://www.dotnetperls.com/hashtable http://www.tutorialspoint.com/csharp/csharp_hashtable.htm

Eu espero que isso ajude!!obrigado :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top