Справочный файл Web.Config из другого проекта в том же решении С#
У меня есть решение VC2010 С#, в котором есть несколько проектов.
Так, например, у меня есть веб-проект, и у меня есть библиотека классов.
В файле web.config у меня есть ключ в разделе <appSettings>
, например.
<add key="FileDirectory" value="G:\ftproot\sales" />
Я также добавил ключ в файл Web.Production.config, чтобы отобразить каталог файлов на сервере.
Поэтому, когда я ссылаюсь на него в своем веб-проекте (это MVC), я делаю так вот так:
var FTPPath = ConfigurationManager.AppSettings["FileDirectory"];
это прекрасно работает в моем веб-проекте. Тем не менее, мне также нужно ссылаться на это в библиотеке классов, которая доходит до моего вопроса. Есть ли способ ссылаться на ключ в файле web.config из другого проекта, например. библиотека классов, в том же решении
Вся помощь приветствуется.
Благодаря
Ответы
Ответ 1
Да, вы можете использовать точно такой же код..Net будет искать ключ конфигурации в файле конфигурации приложения, которое запустило домен приложения. Библиотека классов, используемая таким приложением, будет иметь доступ к этому конфигурационному файлу.
Ответ 2
библиотеки классов не имеют собственной конфигурации. Они используют конфигурацию, из которой когда-либо исполнялись, они используются.
Это означает, что для вас вы должны иметь возможность использовать один и тот же код, и он будет считывать настройки из конфигурации (при условии, что он есть).
Это не всегда удобно (например, если вы используете плагин с расширением .net для оснастки MMC, так как это означает, что вам нужно изменить файл mmc.exe.config в системной папке.)
Возможно, вам лучше иметь способ передать этот необходимый параметр конфигурации в ваш библиотечный код. затем в приложениях, где вы управляете конфигурацией, вы можете просто прочитать ее там и передать ее, а также в приложениях, в которых вы не можете использовать другой подход, например, чтение из реестра или из файла read read вручную. Или получите лучшее из обоих миров и сделайте так, чтобы вы могли передать его, и если это не сделано, он пытается прочитать его из конфигурации по умолчанию.
Этот вопрос содержит более подробную информацию о подводных камнях, связанных с конфигурацией dll, но также имеет некоторые методы для этого, если вам нужно.