2011-08-05 55 views
5

即時閱讀有關WCF兩本書,其中一人正顯示出配置App.Config,另一種是通過展示Code in C#哪個WCF配置方法更聰明?

我想知道我應該使用哪種方法,什麼是對方的利益。 Wcf配置嚮導是否也支持配置後面的c#代碼?

感謝您的答案。

回答

1

我想這取決於你的需求。我個人傾向於使用代碼來配置wcf,特別是對於不可能改變的事情。這可能包括錯誤處理/記錄器,行爲,驗證模塊,服務主機工廠等

更具動態的東西,像連接字符串,密碼,文件路徑等在.config文件中配置。

對使用​​代碼的最大好處是你的代碼現在可以支持諸如IOC /依賴注入,編譯時檢查等

我不買的想法,一切都應該在配置文件,因爲它更容易更改。在大多數情況下,我看到它在生產中永遠不會改變。

1

配置文件的方式更好,讓更多的靈活性。例如,我通過更改配置文件來更改身份驗證類型(用戶名密碼/窗口)。

+0

你也可以更改代碼中的認證類型,所以*沒有進一步的上下文*這並沒有真正給它們之間的選擇 –

+0

我同意你的意見,但是如果我學習有關wcf安全性的新東西,我可以很容易地改變他們通過我的身份驗證配置文件。 – croisharp

+0

在現實生活中(嚴重?)情況下,影響應用程序中所有通信的配置文件的更改仍需要進行測試,就像它是代碼更改一樣。如果你的工作正確,那麼在部署dll或.config文件之間沒有太大的區別 –

5

配置文件可以在不重建的情況下更改(方便地添加自定義檢查器或序列化程序),在客戶端/服務器之間複製/粘貼非常容易,並且具有IDE工具的支持。

如果您在運行時配置系統(即從另一臺服務器獲取信息)或正在作爲庫(dll)運行並且無法保證配置文件將存在,或者b:有你的配置。代碼也有智能感知/靜態檢查,以避免腦死亡錯誤(在xml等錯別字)。

,直到你知道你有沒有用文件很好地工作的場景我會使用一個文件。

還認爲:有多難你部署代碼變化VS的配置變化?對我來說他們差不多,但這可能不適合你。也許只更改機器上的配置更容易?也許不會。