Меня действительно путают различные параметры конфигурации .Net-конфигурации dll, веб-сайтов ASP.net и т. Д. В .Net v2 - особенно при рассмотрении влияния файла конфигурации на интерфейс пользователя/конца - конец конца цепи.Справка по настройке .Net Параметры конфигурации
Так, например, некоторые из приложений, которые я работаю с настройками использования, которые мы получаем доступ с:
string blah = AppLib.Properties.Settings.Default.TemplatePath;
Теперь, этот вариант кажется прохладным, потому что члены stongly набран, и я не смогу для ввода имени свойства, которого нет в среде Visual Studio 2005 IDE. Мы в конечном итоге с линиями, как это в App.Config проекта командной строки исполняемого:
<connectionStrings>
<add name="AppConnectionString" connectionString="XXXX" />
<add name="AppLib.Properties.Settings.AppConnectionString" connectionString="XXXX" />
</connectionStrings>
(Если мы не имеем вторую установку, кто-то выпускает отладки DLL в живом окне может быть построен со строкой отладки соединения встроенной в него - Ик)
у нас также есть настройки, доступ, как это:
string blah = System.Configuration.ConfigurationManager.AppSettings["TemplatePath_PDF"];
Теперь они, кажется здорово, потому что мы можем получить доступ настройки из кода длл или ех/aspx code, и все, что нам нужно в Web или App.config:
<appSettings>
<add key="TemplatePath_PDF" value="xxx"/>
</appSettings>
Однако значение, конечно, не может быть задано в конфигурационных файлах, или имя строки может быть ошибочным, и поэтому у нас есть другой набор проблем.
Итак ... если мое понимание верное, первые методы дают сильную типизацию, но плохое разделение ценностей между dll и другими проектами. Последний обеспечивает лучшее совместное использование, но более слабую типизацию.
Я чувствую, что мне что-то не хватает. На данный момент я даже не беспокоюсь о том, что приложение может записывать значения в файлы конфигурации, шифрование или что-то в этом роде. Кроме того, я решил, что лучший способ хранения любых строк без подключения был в БД ... и тогда самое следующее, что мне нужно сделать, это сохранить номера телефонов в текстовых сообщениях в случае проблем с подключением к БД, поэтому они должны храниться вне БД!
@rob_g запоздалое спасибо и «принятый ответ» для ваших комментариев здесь. В итоге я создал таблицу настроек DB с одной строкой на элемент. Я не думаю, что я достиг «идеального решения», но это намного лучше, чем раньше. – Nij 2010-03-05 21:19:15