2016-07-25 2 views
1

こんにちはすべて、
現在、私はSMの3.X、 にSM 2.xからコードの一部を翻訳しようとしているが、まだ迎撃一部といくつかの問題を抱えています。InterceptWith()のStructureMap 3.xでは

多分、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) 
    {} 
}