我有一個3層.NET服務的應用程序,它遵循的標準方法:n層應用程序中的依賴注入?
Frontend -> Object Model/Business Logic -> Data Access
我想了解沿途依賴注入,因此到目前爲止已經發現了它巨大的(使用Autofac) 。 3層中的每一層都需要創建各種對象,有時還需要額外的配置/等等。似乎DI容器應該是解決這個問題的理想工具,但是我有一些問題要看它應該與系統的其他部分相連。
目前我在配置DI容器的前端有一個類。它基本上是一大堆代碼,說container.Register<SomeType>()
等等。
問題是,它正在爲所有3層配置容器,因此必須具有對數據訪問層的相當侵入性的知識。在我的前臺使用這些知識代碼在我的腦海中引發了警鐘,因爲將應用程序分成多個層級的目的是爲了避免這種情況。
由於我的數據訪問層不僅僅是SQL服務器,而且是由大量複雜的COM互操作和P/Invoke調用組成的,因此這也會變得更糟。 DI配置。我已經給出了一些想法來打破它 - 也許每層有一個容器,或在每層中有一個「安裝」類與全球DI容器進行對話以註冊它自己的位,但我不確定如果這會導致更多的問題比它解決...
我真的很感激,如果任何人都可以分享他們的經驗,使用DI多層應用程序。
謝謝,獵戶座。
你有沒有類似於服務層的東西?以便您的前端在Business Objects之前與其交互。 – BuddyJoe 2009-01-27 22:08:55