2016-10-28 78 views
1

我有一個包含一些服務的類庫。結構圖類庫模塊

使用結構映射我希望這些服務在該類庫中註冊。這導致使用這個類庫的程序集不應該爲這個類庫設置依賴關係,而只需調用一個模塊來在庫本身中設置它。

例如是否可以使用autofac。比方說,我有一個IAAAService和IBBBService的類庫。在這個類庫使用autofac我能做到以下幾點:

public class AutofacModule : Module 
{ 
    protected override void Load(ContainerBuilder builder) 
    { 
     builder.RegisterType<AAAService>().As<IAAAService>(); 
     builder.RegisterType<BBBService>().As<IBBBService>(); 
    } 
} 

,並從應使用該庫的組件,我可以做到這一點:

builder.RegisterModule(new AutofacModule()); 

我在我一定到情況使用結構圖,我想做類似的事情。

這是可能的結構圖嗎?如果是這樣,我會怎麼做?

謝謝:)

回答

1

在StructureMap中,有一個類似的概念稱爲註冊表。在這裏看看更多的細節:http://structuremap.github.io/registration/

請注意,雖然我不建議你在你的類庫中使用容器。容器只能在應用程序中使用(if they are to be used at all)。

this article報價:

一個DI容器應該只從成分根引用。所有其他模塊應該沒有對容器的引用。

+0

感謝您的回覆和建議,非常有幫助。 – Diemauerdk

+0

不客氣。 –