2016-07-25 16 views
1

Hallo,
zur Zeit versuche ich, einen Teil des Codes von SM 2.X zu SM 3.X, aber immer noch einige Probleme mit dem Abfangen Teil haben zu übersetzen .InterceptWith() in StructureMap 3.x

Vielleicht kann jemand, der mit StructureMap vertrauter ist, mir dabei helfen?

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

Der Code ist von einem EPiServer blog.

Antwort

0

Eine ähnliche Frage wurde in dem EPiServer Community-Forum beantwortet: http://world.episerver.com/forum/developer-forum/-Episerver-75-CMS/Thread-Container/2016/8/structuremap-v2-vs-v3-syntax/

TL; DR - sollten Sie den gewünschten Effekt, indem Sie diese Syntax in Structuremap v3 zu erhalten fähig sein:

[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) 
    {} 
}