Как мне получить AppSettings из файла конфигурации сборки?

Версия Clojure:

(defn comb [k l]
  (if (= 1 k) (map vector l)
      (apply concat
             (map-indexed
              #(map (fn [x] (conj x %2))
                    (comb (dec k) (drop (inc %1) l)))
              l))))
16
задан Kevin Driedger 5 November 2009 в 17:03
поделиться

3 ответа

Использование OpenMappedExeConfiguration возвращает вам объект «Конфигурация», который вы можете использовать для просмотра конфигурации библиотеки классов (и существующие там настройки переопределят те, с тем же именем в конфигурации основного приложения):

ExeConfigurationFileMap map = new ExeConfigurationFileMap();
map.ExeConfigFilename = "ConfigLibrary.config";

Configuration libConfig = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);

AppSettingsSection section = (libConfig.GetSection("appSettings") as AppSettingsSection);
value = section.Settings["Test"].Value;

Но те настройки, которые уникальны для конфигурации основного приложения и не существуют в собственной конфигурации библиотеки классов, по-прежнему доступны через статический класс ConfigurationManager :

string serial = ConfigurationManager.AppSettings ["Serial"];

Это все еще работает - конфигурация библиотеки классов скрывает только те настройки, которые находятся внутри ее файла конфигурации; плюс вам нужно использовать экземпляр " libConfig , чтобы получить доступ к собственным настройкам конфигурации библиотеки классов.

Два мира (main app.

23
ответ дан 30 November 2019 в 12:51
поделиться

Вы также можете открыть его как XmlDocument и перемещаться по документу с помощью Xpath. ТОГДА всегда есть LinqToXml

0
ответ дан 30 November 2019 в 12:51
поделиться
var uri = new Uri(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase));
var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = Path.Combine(uri.LocalPath, "MyAssembly.dll.config") };
var assemblyConfig = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 
0
ответ дан 30 November 2019 в 12:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: