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()
...
);