温莎国际奥委会注册Sitecore

温莎国际奥委会注册Sitecore,sitecore,inversion-of-control,castle-windsor,castle,Sitecore,Inversion Of Control,Castle Windsor,Castle,在温莎城堡国际奥委会注册中,Ninject中的When条款是否具有同等效力?我想在Sitecore使用温莎城堡。当我在页面编辑器(布尔指示器)中时,我希望使用静态列表,而不是调用后端应用程序 我的解决方案应该是: Component.For<ICartProvider>().ImplementedBy<OscarCartProvider>().DependsOn(Dependency.OnValue(false, StateHelper.InMockSta

在温莎城堡国际奥委会注册中,Ninject中的When条款是否具有同等效力?我想在Sitecore使用温莎城堡。当我在页面编辑器(布尔指示器)中时,我希望使用静态列表,而不是调用后端应用程序

我的解决方案应该是:

        Component.For<ICartProvider>().ImplementedBy<OscarCartProvider>().DependsOn(Dependency.OnValue(false, StateHelper.InMockState())).LifestyleTransient(),
        Component.For<ICartProvider>().ImplementedBy<MockCartProvider>().DependsOn(Dependency.OnValue(true, StateHelper.InMockState())).LifestyleTransient(),
Component.For().ImplementedBy().DependsOn(Dependency.OnValue(false,stateheloper.InMockState()).LifestyleTransient(),
Component.For().ImplementedBy().DependsOn(Dependency.OnValue(true,stateheloper.InMockState()).LifestyleTransient(),

StateHelper.InMockState返回一个布尔值,该值将导致加载MockCart提供程序而不是OscarCartProvider。

与Ninject的
最接近的等价项可能是,它允许您根据某个谓词选择给定的处理程序,在
IHandlerSelector
的情况下,它是
HasOpinionAbout
方法的返回值


或者,可能更简单,因为它看起来像是一个静态列表实现,总是希望与
PageEditor
一起使用,在向容器注册
PageEditor
时,您可以使用它来注册静态列表实现,以便在其他实现上使用。

我认为
PageEditor
是从容器中解析的?当前它是Sitecore上下文中的静态变量。PageEditor是Sitecore上下文中的静态属性吗?如果您能为您的问题添加一些代码,为您想要实现的目标提供一些可视上下文,这可能有助于我们进一步理解我已经实现了IHandlerSelector。这个很好用!现在我有一个页面编辑器环境,它不使用后端应用程序!