2010-02-21 41 views
1

我有依賴注入與Unity一起工作,它運行良好,但我想減少app.config中的cruft數量,因爲它變得巨大。如何減少用於Unity依賴注入的.config所需的配置數量?

這是一個問題,因爲客戶通常會通過刪除評論等來「清理」配置,最終我們會得到幾百行令人討厭的XML而無需解釋。

那麼,有沒有辦法;

  1. 通過使用默認值減少混亂的數量?
  2. 將配置移出到另一個有助於隔離它的.config文件?

我明白.Net 4.0有一些好的東西可以減少.config文件,這是否有助於Unity配置?

由於提前,

瑞安

回答

2

從我的角度來看,你有兩個選擇:

  • 移動到另一個配置文件。
  • 在代碼中編寫IoC的東西,我更喜歡這種方式,因爲它更具可讀性。您可以通過代碼創建一個靜態容器變量:默認情況下爲默認情況,或者在單元測試中爲mocks。

RepositoryContainer.Contanier = ProductionRepositories(); RepositoryContainer.Container = MockRepositories();

3

改爲在代碼中編寫配置。除非您明確需要能夠在編譯後將抽象類型映射到具體類型,否則使用配置文件只會讓您的系統變得更脆弱。

Unity沒有很多基於約定的功能,但您可以隨時自己寫一些。在代碼中,這將允許您簡單地掃描特定的程序集,查找以「... Repository」結尾的所有公共類型...並註冊它們。

StructureMap和Windsor的功能都使得這更容易,但在任何情況下configuration in config should be left for the scenarios where you truly need to be able to swap out dependencies after compilation

在大多數情況下,這只是在容器中註冊的服務總量(如果有的話)的一小部分。