我想将 Windsor 中的 BoundTo Lifestyle 与 TypedFactoryFacility 一起使用,工厂在其中维护其范围上下文。但是我注意到目前不支持此功能(https://groups.google.com/forum/?fromgroups#!topic/castle-project-users/txDi3dZ8veQ)。有人可以解释我如何实现这一点,也许在温莎有不同的方法可以做同样的事情?
我有一个类似于以下的场景。在其中我使用命令将新面板添加到工作区,我希望将相同的 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()
...
);