我想将Windsor中的BoundTo Lifestyle与TypedFactoryFacility结合使用,其中工厂维护其作用域上下文。但是我注意到目前不支持此功能(https://groups.google.com/forum/?fromgroups#!topic/castle-project-users/txDi3dZ8veQ)。有人可以解释我是如何实现这一点的,也许在温莎有不同的方法来做同样的事情吗?
我有一个类似于以下的场景。我在其中使用Command将新面板添加到工作区,我希望将相同的ISomeScopedViewModel实例注入到我添加的每个面板中(由工厂IWorkspacePanelViewModelFactory创建)。
情景:
_container = new WindsorContainer();
_container.Kernel.AddFacility<TypedFactoryFacility>();
_container.Register(
Component.For<IWorkspaceViewModel>().ImplementedBy<WorkspaceViewModel>().LifeStyle.Is(LifestyleType.Transient),
Component.For<ISomeScopedViewModel>().ImplementedBy<SomeScopedViewModel>().LifeStyle.BoundTo<IWorkspaceViewModel>(),
Component.For<IWorkspacePanelViewModel>().ImplementedBy<WorkspacePanelViewModel>().LifeStyle.Is(LifestyleType.Transient),
Component.For<IWorkspacePanelViewModelFactory>().AsFactory()
...
);