2016-07-25 11 views
1

안녕 모두,
현재 나는 SM의 3.X, 에 SM의 2.X에서 코드의 일부를 번역 여전히 차단 부분에 약간의 문제가 발생하기 위해 노력하고있어 .StructureMap 3.x의에서 InterceptWith()

아마도 StructureMap에 익숙한 사람이 저를 도울 수 있습니까?

container.IfTypeMatches(type => type.Equals(typeof(PageRepositoryDescriptor))) 
    .InterceptWith(i => new CustomPageRepositoryDescriptor()); 

코드는 EPiServer blog에서 가져온 것입니다.

답변

0

비슷한 질문은 여기에 Episerver 커뮤니티 포럼에서 대답했다 : http://world.episerver.com/forum/developer-forum/-Episerver-75-CMS/Thread-Container/2016/8/structuremap-v2-vs-v3-syntax/

TL; DR - 당신은 Structuremap v3에서이 구문을 사용하여 원하는 효과를 얻을 수 있어야합니다 :

[ModuleDependency(typeof(EPiServer.Web.InitializationModule))] 
    public class InterceptModule : IConfigurableModule 
    { 
    public void ConfigureContainer(ServiceConfigurationContext context) 
    { 
     context.Services.Intercept<IContentRepositoryDescriptor>((locator, defaultService) => 
     { 
      var pageRepositoryDescriptor = defaultService as PageRepositoryDescriptor; 
      return pageRepositoryDescriptor != null ? 
       new MyPageRepositoryDescriptor(pageRepositoryDescriptor) : 
       defaultService; 
     }); 
    } 

    public void Initialize(InitializationEngine context) 
    {} 

    public void Uninitialize(InitializationEngine context) 
    {} 
}