2016-04-18 5 views
1

Я не могу получить доступ к CloudfigurationManager из метода. Первоначально код был классической библиотекой, и я добавил файл конфигурации (App.config), где я просто добавляю значения для жесткого кодированного теста для Azure SDK.ConfigurationManager.AppSettings [ключ] недоступен в библиотеке классов

OpenSessionWithAzure()

private void OpenSessionWithAzure() 
    { 
     CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSetting["APP_SETTINGS"])// Visual Studio is unable to identify ConfigurationManager 
    } 

App.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<connectionStrings> 
    <add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=https;AccountName=userName;AccountKey=Key"/> 
    <add name="SasPolicyName" connectionString="myPolicy"/> 
</connectionStrings> 
</configuration> 

Есть причина, почему я не могу получить доступ к ConfigurationManager внутри моего приложения или известной обходной путь?

+0

У вас есть ссылка на 'System.Configuration'? – Glk

ответ

2

Причиной этой ошибки было связано с тем, что я не сделал:

  1. есть ссылка на System.Configuration.dll в моей библиотеке классов.
  2. Не имеет using System.Configuration

После добавления выполнения шагов выше, я не в состоянии получить доступ ConfigurationManager.AppSettings["APP_SETTINGS"]

0

Когда вы пытаетесь прочитать от appSettings, он читает из файла .config исполняемого приложения. Поэтому в простейшей реализации вам просто нужно добавить эти параметры конфигурации в файл .config этого приложения (app.config или web.config.) Есть другие способы приблизиться к нему, если вам абсолютно нужна библиотека, чтобы иметь свой собственный .config файл, но добавление его в .config исполняющего приложения - это то, что сделано наиболее часто.

1

Вы должны добавить ссылку на System.Configuration, а затем добавить пару ключ-значение в appSettings разделе

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
      <add key="SasPolicyName" value="myPolicy" /> 
      <add key="APP_SETTINGS" value="MySetting" /> 
    </appSettings> 
    <connectionStrings> 
      <add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=https;AccountName=userName;AccountKey=Key"/> 
    </connectionStrings> 
</configuration> 

Затем используйте, как показано ниже,

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSetting["APP_SETTINGS"]) 
1

Используемая вами подпись метода должна соответствовать настройке в вашем App.config.

С ниже настройки,

<configuration> 
    <appSettings> 
    <add key="StorageConnectionString" value="XXXXXXXXX"/> 
    </appSettings> 
</configuration> 

использование System.Configuration.ConfigurationManager.AppSettings["StorageConnectionString"].

И System.Configuration.ConfigurationManager.ConnectionStrings["StorageConnectionString"] для

<configuration> 
    <connectionStrings> 
    <add name ="StorageConnectionString" connectionString="XXXXXXXXXX"/> 
    </connectionStrings> 
</configuration> 
Смежные вопросы