2013-04-24 11 views
2

Я хочу прочитать некоторые значения из файла App.config моего проекта, но когда я делаю это:Не удается прочитать ключи от App.config

var appsettings = System.Configuration.ConfigurationManager.AppSettings; 

я получаю только четыре элемента: StopTestRunCallTimeoutInSeconds, LogSizeLimitInMegs, CreateTraceListener и GetCollectorDataTimeout, которые даже не перечислены в XML. Мои клавиши username и password даже не отображаются.

Мой App.Config выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <appSettings> 
    <add key="username" value="Administrator" /> 
    <add key="password" value="password" /> 
    </appSettings> 
    <system.web> 
    <membership defaultProvider="ClientAuthenticationMembershipProvider"> 
     <providers> 
     <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" /> 
     </providers> 
    </membership> 
    <roleManager defaultProvider="ClientRoleProvider" enabled="true"> 
     <providers> 
     <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" /> 
     </providers> 
    </roleManager> 
    </system.web> 
</configuration> 

ли я что-то отсутствует? Мне кажется, что я читал из совершенно другого конфигурационного файла, но другого нет.

+0

если вы положили точку прерывания на appSettings, и вы наводите ее на нее, когда она останавливается, вы видите некоторые клавиши? потому что я пробовал самостоятельно, и я видел все ваши ключи. – Sebastien

+1

appSettings показывает только четыре записи, упомянутые выше. никто из моих. И не беспокойтесь, имя пользователя и пароль, записанные в файл конфигурации, предназначены только для тестирования, ничего окончательного. – wodzu

ответ

8

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

2

вы можете прочитать в настройках приложения, потянув их по имени

var username = ConfigurationManager.AppSettings["username"] 
var password = ConfigurationManager.AppSettings["password"] 

Основной тип данных AppSettings является NameValueCollection. Таким образом, вы вытаскиваете значение на основе ключа.

Вот документация AppSettings, которая показывает пример http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx

0

Это звучит, как вы читаете из QTAgentService.exe.config вместо вашего app.config.

http://msdn.microsoft.com/en-us/library/ff934570.aspx

+0

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

+0

Я не могу найти QTAgentService.exe.config XML, это не так, как описано в '<буква диска:> \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ .' должно быть что-то еще – wodzu

+0

Это возможно, что для отладки используется другой файл конфигурации? – wodzu

 Смежные вопросы

  • Нет связанных вопросов^_^