2016-10-28 9 views
1

일부 서비스가 포함 된 클래스 라이브러리가 있습니다.Structuremap 클래스 라이브러리 모듈

구조지도를 사용하여이 서비스를 해당 클래스 라이브러리에 등록하려고합니다. 이 결과로이 클래스 라이브러리를 사용하는 어셈블리는이 클래스 라이브러리에 대한 종속성을 설정해서는 안되며 단순히 라이브러리 자체 내에서이를 설정하는 모듈을 호출해야합니다.

예를 들어 autofac을 사용할 수 있습니다. 내가 IAAAService 및 IBBBService 클래스 라이브러리가 있다고 가정 해 봅시다.

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

을 그리고 라이브러리를 사용한다 어셈블리에서 나는이 작업을 수행 할 수 있습니다 :이 클래스 라이브러리에 내가 할 수있는 autofac를 사용하여 다음을 수행

builder.RegisterModule(new AutofacModule()); 

내가이 결합하고있는 상황에서 오전 구조지도를 사용하고 비슷한 것을하고 싶습니다.

구조지도에서 가능합니까? 그렇다면 어떻게해야할까요?

감사 :

답변

1

구조 맵에는 레지스트리라는 비슷한 개념이 있습니다. 자세한 내용을 보려면 여기를 참조하십시오. http://structuremap.github.io/registration/

클래스 라이브러리 내부의 컨테이너는 사용하지 않는 것이 좋습니다. 컨테이너는 응용 프로그램 내에서만 사용해야합니다 (if they are to be used at all).

this article에서 인용 :

데저트 컨테이너

만 구성 루트에서 참조해야합니다. 다른 모든 모듈에는 컨테이너에 대한 참조가 없어야합니다.

+0

답장과 제안에 감사드립니다. 매우 유용합니다. – Diemauerdk

+0

당신을 진심으로 환영합니다. –