0

I've been working on my software lately and I have been wondering what the best way is to store an associative array.

The only thing I could come up with out of the blue is to do something like this:

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

But this doesn't offer a lot of readability in my config file and I want my config file to be readable as it is a console application.

The reason for this because I've written a program that checks the diskspace of the disks specified in the app.config file but I want different thresholds for different disks.

How would you solve it? Here's a part of my current config file.

<!-- 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"/>

I want to use the same principle for my performancecounter program that uses the perfmon counters to get some data and store it in a text file.

I hope people can help me for a bit here :)

Jeffro
  • 47
  • 1
  • 2
  • 7

3 Answers3

4

I suggesst you to create your own configuration section. Custom configuration gives more readability and type safety. Here are links to create custom configuration http://msdn.microsoft.com/en-us/library/2tw134k3.aspx and http://haacked.com/archive/2007/03/11/custom-configuration-sections-in-3-easy-steps.aspx (old one but easy to follow).

ZafarYousafi
  • 8,640
  • 5
  • 33
  • 39
  • I went along with this solution although I required some more searching to get exactly what I want. Thanks for the suggestion :) – Jeffro Jul 27 '12 at 10:57
1

As far as standard configuration mechanism works with XML serialization, the best (and, IMHO, the wise) way to store dictionaries in App.config is a List<KeyValuePair<K,V>>.

Dennis
  • 37,026
  • 10
  • 82
  • 150
0

you may want to use Hashtable from system.collection or List<>

below are few pointers for hashtable, http://www.dotnetperls.com/hashtable http://www.tutorialspoint.com/csharp/csharp_hashtable.htm

i hope this helps!! thanks :)

PrashantC
  • 31
  • 5