Подтвердить что ты не робот

Справочный файл Web.Config из другого проекта в том же решении С#

У меня есть решение VC2010 С#, в котором есть несколько проектов.

Так, например, у меня есть веб-проект, и у меня есть библиотека классов.

В файле web.config у меня есть ключ в разделе <appSettings>, например.

<add key="FileDirectory" value="G:\ftproot\sales" />

Я также добавил ключ в файл Web.Production.config, чтобы отобразить каталог файлов на сервере.

Поэтому, когда я ссылаюсь на него в своем веб-проекте (это MVC), я делаю так вот так:

var FTPPath = ConfigurationManager.AppSettings["FileDirectory"];

это прекрасно работает в моем веб-проекте. Тем не менее, мне также нужно ссылаться на это в библиотеке классов, которая доходит до моего вопроса. Есть ли способ ссылаться на ключ в файле web.config из другого проекта, например. библиотека классов, в том же решении

Вся помощь приветствуется. Благодаря

4b9b3361

Ответ 1

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

Ответ 2

библиотеки классов не имеют собственной конфигурации. Они используют конфигурацию, из которой когда-либо исполнялись, они используются.

Это означает, что для вас вы должны иметь возможность использовать один и тот же код, и он будет считывать настройки из конфигурации (при условии, что он есть).

Это не всегда удобно (например, если вы используете плагин с расширением .net для оснастки MMC, так как это означает, что вам нужно изменить файл mmc.exe.config в системной папке.)

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

Этот вопрос содержит более подробную информацию о подводных камнях, связанных с конфигурацией dll, но также имеет некоторые методы для этого, если вам нужно.