Получение настроек конфигурации из web.config/app.config с использованием библиотеки классов
Настройки конфигурации в 3.5 меня заставляют орехи... Помогите!;)
У меня есть библиотека классов (Named ADI), для которой требуются некоторые параметры конфигурации из проекта (например, строка подключения, расположение файловой системы и т.д.).
Я хочу определить эти параметры в моих приложениях Windows Forms/Web Projects App.Config или Web.Config, как и другие настройки.
Вот часть моего app.config для моего приложения форм Windows:
<applicationSettings>
<PhotoImportRobot.My.MySettings>
<setting name="ADIImageRoot" serializeAs="String">
<value>C:\DataTemp\ADI\Original\</value>
</setting>
<setting name="ADIImageVariantsRoot" serializeAs="String">
<value>C:\DataTemp\ADI\Variants\</value>
</setting>
</PhotoImportRobot.My.MySettings>
</applicationSettings>
Как мне получить доступ к этой библиотеке классов?
Я пробовал это:
System.Configuration.ConfigurationManager.AppSettings("ADIImageVariantsRoot")
Что делать?
Ответы
Ответ 1
Если вы не после структурированных настроек, раздел appSettings просто принимает пары ключ-значение:
<appSettings>
<add key="ADIImageRoot" value="C:\DataTemp\ADI\Original\" />
<add key="ADIImageVariantsRoot" value="C:\DataTemp\ADI\Variants\" />
</appSettings>
Это позволит вам получить доступ к ним через словарь AppSettings:
ConfigurationManager.AppSettings["ADIImageVariantsRoot"]
Как и следовало ожидать.
В качестве альтернативы, если вам нужна больше структуры для вашей конфигурации (т.е. больше, чем просто строки или набор настроек), вы можете изучить собственный раздел конфигурации, используя ConfigurationSection и его соответствующие части.
Ответ 2
Кажется, вы используете материал настроек, встроенный в визуальную студию. Это создает класс оболочки, связанный с файлом, который вызывается в вашем случае MySettings
.
Таким образом вы можете написать что-то вроде MySettings.Instance.ADIImageVariantsRoot
. (Если вы нажмете показать все файлы в панели инструментов проекта, он покажет вам файл .settings.cs, и вы сможете увидеть все детали gory)
Ответ 3
Добавить ссылку System.web;
добавить пространство имен и пользователя
using System.Web.Configuration;
String webConfigValue;
webConfigValue = WebConfigurationManager.AppSettings["employeeDB"].ToString();
чтобы прочитать значение веб-конфигурации
<appSettings>
<add key="employeeDB" value="Data Source=servername;Initial Catalog=employee;Persist Security Info=True;User ID=userid;Password=password;"/>
</appSettings>
Ответ 4
Для ApplicationSettings вы должны использовать:
[YourNamespace].Properties.Settings.Default.[YourSettingName]
Это обеспечивает строго типизированную ссылку на ваш параметр и возвращает значение по умолчанию, если оно не определено в файле web.config. Для AppSettings вы должны использовать:
System.Web.Configuration.WebConfigurationManager.AppSettings