Jeffro
Jeffro

Reputation: 47

Best way to store associative array in app.config

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 :)

Upvotes: 0

Views: 5200

Answers (3)

PrashantC
PrashantC

Reputation: 31

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 :)

Upvotes: 0

ZafarYousafi
ZafarYousafi

Reputation: 10840

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).

Upvotes: 4

Dennis
Dennis

Reputation: 37760

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>>.

Upvotes: 1

Related Questions