2015-04-15 32 views
10

在Azure的網站,我總是用下面的代碼從配置的應用程序設置取一些值:CloudConfigurationManager vs WebConfigurationManager?

string property = WebConfigurationManager.AppSettings["property"]; 

就在幾天前,我stublemd在CloudConfigurationManager,有了它,我可以得到這樣的屬性所以:

string property = CloudConfigurationManager.GetSetting("property"); 

雖然CloudConfigurationManager似乎更適合雲使用,但我從來沒有任何與WebConfigurationManager有關的問題。

  • 我應該使用CloudConfigurationManager嗎?
  • 這兩者之間有什麼不同?
  • CloudConfigurationManager會在哪些情況下表現出不同於
    WebConfigurationManager?

回答

11

CloudConfigurationManager使我們能夠讀取配置文件,而不管我們是在環境

所以不是寫作環境特定代碼語句例如,對於web.config文件:

WebConfigurationManager.AppSettings [ 「MySetting」]

對於ServiceConfiguration.cscfg文件:

RoleEnvironment.GetConfigurationSettingValue( 「MySetting」)

我們可以寫出下面的語句,該語句將所有的配置文件,即app.config中,web.config文件和ServiceConfiguration.cscfg讀取值。

CloudConfigurationManager。GetSetting(「MySetting」)

1

WebConfigurationManagerCloudConfigurationManager管理不同的配置文件。

WebConfigurationManager是管理網站的web.config文件(S)和它的AppSettings和連接字符串

CloudConfigurationManager是管理.cscfg文件(雲服務)。他的好處是您可以直接從Azure門戶管理配置和連接。

+0

但CloudConfigurationManager工作正常,並使WebConfigurationManager的工作 - 我的問題中的代碼工作。 –

+0

是的,根據[msdn](https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.cloudconfigurationmanager.aspx),它也可以工作,它有點「獎勵」邏輯。因此,如果您打算僅使用Azure,則可以將它用於web.config和cscfg設置,但如果您想從Azure切換,則需要對其進行更改。 – Lanayx

1

CloudConfigurationManager需要Microsoft.WindowsAzure.Configuration程序集,Azure SDK的一部分或單獨的NuGet。

WebConfigurationManager需要System.Web.Configuration程序集,.NET Framework的一部分。

相關問題