0
由於歷史原因,我們的應用程序有一個靜態結構映射圖,可用於所有IoC/DI。我們有很多測試來檢查這個容器是否設置正確,但是要確保測試不會相互干擾變得越來越困難。我想開始分解到幾個(非靜態)容器來緩解這一點。爲了保持向後兼容性,此容器中配置的東西必須在主容器中仍可用。轉發解析爲另一個容器
我實現了一個驗證的概念,它處理只有少數基本類型這樣的系統中的一小部分:
_pocContainer = new Container(/* setup code */);
MainContainer.Configure(c => c.For<C>.Use(ctx => _pocContainer.GetInstance<C>());
這個工作,並從靜態請求的C
實例時容器,它從_pocContainer
解決。但是,我相當肯定這不是在設計StructureMap時被認爲是正常用例的東西。這會造成糟糕的表現,還是會產生其他負面影響?有沒有更好的方法來做到這一點?
你不能分割登記到註冊管理機構和分別測試每個註冊表? – PHeiberg
@PHeiberg:好主意!以這種方式實現它 - 請作爲回答發佈:) – carlpett