Лучший способ хранить ассоциативный массив в App.config
-
12-12-2019 - |
Вопрос
Я работаю над своим программным обеспечением в последнее время, и мне было интересно, какой лучший способ хранить ассоциативный массив.
Единственное, что я мог бы придумать с синего, это сделать что-то вроде этого:
<add key="disks" value="C|1|10,D|2|20,E|1|5,Z|1|3"/>
.
Но это не предлагает много читаемости в моем файле конфигурации, и я хочу, чтобы мой файл конфигурации быть читабельным, так как это приложение консоли.
Причина этого, потому что я написал программу, которая проверяет диск пространства дисков, указанных в файле App.config, но я хочу разные пороги для разных дисков.
Как бы вы это решили? Вот часть моего текущего файла конфигурации.
<!-- 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"/>
.
Я хочу использовать тот же принцип для моей программы Performancounter, которая использует счетчики перфоусов, чтобы получить некоторые данные и хранить его в текстовом файле.
Я надеюсь, что люди могут помочь мне немного здесь :)
Решение
Я предлагаю вам создать свой собственный раздел конфигурации.Пользовательская настройка дает более читаемость и безопасность типа.Вот ссылки для создания пользовательской настройки http://msdn.microsoft.com/en-us/library/2tw134k3.aspx и http://haacked.com/Archive/2007/03/11/custom-configuration-sections-in-3-easy-steps.aspx (старый, но легко следовать).
Другие советы
До стандартного механизма конфигурации работает с сериализацией XML, лучшим (и, ИМХО, мудрым) способом хранения словарей в App.config - это генеракодицетагкод.
Вы можете использовать hashtable из system.collection или list <>
ниже мало указателей для hashtable, http://www.dotnetperls.com/hashtable http://www.tutorialspoint.com/csharp/csharp_hashtable.htm
Я надеюсь, что это поможет !!Спасибо :)