2013-07-23 21 views
2

好吧,我覺得這很簡單。使用WCF在app/web/config/settings上自定義鍵值對

我需要從配置中獲取WCF服務應用程序上的幾個鍵值對。

  • 可以使用哪個文件? app.config/web.config/settings.settings/etc
  • 哪個最適合WCF(至少在VS2010中)?爲什麼?
  • 如何將它寫在配置文件上? (例如<sometag><add key="foo">bar</add></sometag>
  • 如何從項目中的代碼隱藏中調用它? ConfigurationManager["foo"].Something

我想這個,我清楚地顯示了我對每個文件的困惑。

我希望有人能消散大霧!

回答

3

你應該在你的VS項目中有一個app.config文件。如果您不這樣做,可以通過右鍵單擊解決方案資源管理器中的項目,然後單擊添加,然後添加新項目來添加項目。在「添加新項目」屏幕中,您應該看到左側常用項目中的「常規」。雙擊中間屏幕中的第一項「應用程序配置文件」,你應該很好。

從那裏,你可以添加你的XML標籤。

在App.config典型格式是這樣的:

<?xml version="1.0"?> 
<configuration> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> 
    </startup> 
    <appSettings> 
     <add key="HostDomain" value="\\somedatabaseserver\DatabaseUnitTests" /> 
     <add key="Port" value="" /> 
    </appSettings> 
</configuration> 

取決於你如何編譯你的WCF服務(格式),你應該得到你的witin \項目\ BIN \ Debug目錄中產生.config文件與您的可執行文件或DLL名稱相同。

閱讀代碼中的配置文件與做事情是這樣的:

Dim confReader As System.Configuration.AppSettingsReader = New System.Configuration.AppSettingsReader 
    sHostDomain = confReader.GetValue("HostDomain", GetType(System.String)).ToString() 
    sPort = confReader.GetValue("Port", GetType(System.String)).ToString() 

希望有所幫助。

+0

奇怪的是,VS2010並沒有顯示爲一個選項來添加一個app.config到WCF應用程序,作爲選項列出我只有web.config,app.manifest ...我可以創建一個無處不在但是,我認爲VS試圖通過刪除選項來告訴我一些事情。 – apacay

+0

甚至當我可以在引用WCF的類項目上創建app.config(它只與''標籤一起出現時,它仍然不讓我這麼做'confReader.GetValue 「HostDomain」,GetType(System.String))。ToString()'(其實這個標籤實際上是在appSettings下創建的) – apacay

+0

對不起,我遲到了,我在歐洲工作,5點離開。 Web.config也可以工作。根據您部署項目的方式,web.config與app.config相同。 – Brian