ConfigurationManager.AppSettings при возврате null

Я использую ConfigurationManager.AppSettings [myKey] для чтения значения из файла app.config в моем приложении Windows, но возвращаемое значение всегда равно null, хотя ключ существует и имеет значение. Deas знает любой почему?

Спасибо

Ответ 1

Одна, может быть, проще, альтернатива - использовать файл настроек. Это инкапсулирует создание и обслуживание значений App.config в графическом интерфейсе дизайнера и генерирует код для доступа к значениям.

Чтобы добавить файл настроек, щелкните правой кнопкой мыши свой проект в VS и нажмите "Добавить → Новый элемент", выберите "Файл настроек" и укажите его значимое имя, например. MainSettings.settings. Затем вы можете добавить элемент, например. Foo, укажите, является ли это приложение или пользовательским, укажите его тип и присвойте ему значение. В вашем коде вы можете получить значение простым письмом MainSettings.Default.Foo.

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

<applicationSettings>
    <YourNamespace.MainSettings>
        <setting name="Foo" serializeAs="String">
            <value>Bar</value>
        </setting>
    </YourNamespace.MainSettings>
</applicationSettings>

Ответ 2

Трудно сказать, что вы здесь предоставили:

  • Проверьте правильность написания значения в myKey
  • Убедитесь, что вы смотрите на правильный app.config - если этот вызов находится в справочной библиотеке, и вы ожидаете, что значение поступит от вызывающего проекта app.config, но у вашей библиотеки есть app.config по какой-либо причине это может вызвать проблемы.

Ответ 3

У меня была та же проблема, но когда я добавил пустую строку (+ "") в конец, она берет строку в настройках app

например

string s = ConfigurationManager.AppSettings["myKey"] + "";

Ответ 4

У меня есть два проекта в моем решении. Сначала я добавляю файл app.config в проект библиотеки классов, который все экземпляры вызывают из консольного приложения. Я добавил эти записи в файл конфигурации в проекте класса lib

<appSettings> 
<add key="userName" value="user2" /> 
<add key="emilsLimit" value="50" /> 
</appSettings>

он выбрасывал исключительное исключение, когда я получаю их в классе в проекте библиотеки классов, но когда я удаляю app.config из проекта библиотеки классов и добавляется в проект консоли, он работает. Пользователи

Примечание. Ссылка на проект класса lib добавляется в консоль