2016-10-28 79 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

不客气。 –