Как читать Application.Setting из указанной библиотеки классов - PullRequest
2 голосов
/ 08 сентября 2010

Сценарий: у меня есть 2 проекта, MainApplication (который компилируется в исполняемый файл) и ClassLibrary1.Теперь MainApplication ссылается или загружает ClassLibrary1, но ClassLibrary1 не имеет представления о MainApplication.

Но я хочу использовать Настройки (Properties.Settings NOT appSettings Dot.Net 2.0), которые определены вMainApplication.

Как вы этого добиваетесь?

Мне показалось МНОЖЕСТВО примеров, которые используют

System.Configuration.ConfigurationSettings.AppSettings.Get("SettingName");

Это НЕ относится к моей ситуации, так как appSettings - старая школа, и яЯ использую более новые механизмы Properties.Settings.

Ваша помощь приветствуется:)

Ответы [ 2 ]

1 голос
/ 08 сентября 2010

Я провел некоторые исследования в коде.Я могу получить такую ​​настройку, но она действительно грязная:

((ClientSettingsSection)ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).SectionGroups["applicationSettings"].Sections["MainApplication.Properties.Settings"]).Settings.Get("Tester").Value.ValueXml.InnerText;

Может быть, кто-то может предложить более элегантное решение

0 голосов
/ 08 сентября 2010

Поскольку класс «Настройки» определен в главном проекте, вы не можете напрямую получить к нему доступ из проекта класса, поскольку вы создали бы циклическую зависимость.Что бы вы сделали, это предоставили бы библиотеке классов делегата, которого она может вызывать для динамического извлечения настроек из основного проекта.Создайте класс, который хранит делегата в библиотеке классов, и установите для этого делегата метод, определенный в главном проекте.Эти методы инкапсулируют инструкции, необходимые для извлечения параметра.

И, на мой взгляд, appSettings не является старой школой, это просто способ представления параметров конфигурации, которые не являются специфическими или настраиваемыми пользователем.

...