Я пытаюсь прочитать ключи из Web.config
файла в другом слое, чем веб-слой (То же решение)
Вот что я пытаюсь:
string userName = System.Configuration.ConfigurationManager.AppSettings["PFUserName"];
string password = System.Configuration.ConfigurationManager.AppSettings["PFPassWord"];
И вот мой appSettings
в Web.config
файле:
<configuration>
....
<appSettings>
<add key="PFUserName" value="myusername"/>
<add key="PFPassWord" value="mypassword"/>
</appSettings>
....
</configuration>
Когда я отлаживаю код username
и password
просто null
, чтобы он не получал значения ключей.
Что я делаю не так, чтобы прочитать эти значения?
c#
asp.net-mvc
Туаль
источник
источник
NULL
. Поздний комментарий, но никто не указал на это.Ответы:
Попробуйте вместо этого использовать класс WebConfigurationManager. Например:
источник
источник
ToString()
избыточно, хотя.string value = ConfigurationManager.AppSettings[key] ?? "unknown value"
Если вызывающий объект - другой проект, вы должны написать конфигурацию в вызывающем проекте, а не вызываемом.
источник
Я нашел это решение весьма полезным . Он использует C # 4.0 DynamicObject, чтобы обернуть ConfigurationManager. Так что вместо доступа к значениям, как это:
Вы получаете доступ к ним как к собственности:
РЕДАКТИРОВАТЬ : Добавление фрагмента кода в случае, если ссылка становится устаревшей:
источник
Полный путь для этого
источник
Там будет два файла Web.config. Я думаю, что вы, возможно, перепутали эти два файла.
Проверьте это изображение:
На этом изображении вы видите два файла Web.config. Вы должны добавить свои константы к той, которая находится в папке проекта, а не в папке представлений
Надеюсь, это поможет вам
источник
Эта проблема возникает, если этот проект используется другим проектом. Убедитесь, что вы скопировали ключи настройки приложения в app.config или web.config родительского проекта.
источник
Также вы можете попробовать эту строку, чтобы получить строковое значение из
app.config
файла.источник
с допущением ниже настройки в файле .config:
попробуй это:
источник
Извините, я не проверял это, но я думаю, что это сделано так:
источник