我有以下对象图,我想使用 IoC 容器来解决:
在这里,B(#1)
andB(#2)
是相同类型但不同的实例,与C(#1)
andC(#2)
和D(#1)
and相同D(#2)
。我想解决A
。
问题是D
其他四个对象有两个实例作为依赖项。根据我设置生命周期的方式D
,我将获得一个所有人共享的实例,或者我将获得四个不同的实例。
我目前正在使用 StructureMap,但如果需要 StructureMap 所没有的某些功能,该解决方案可以使用另一个 IoC 容器。
实际用例(根据评论中的要求):
对象图位于 WPF 应用程序中,我将典型的 MVVM ViewModel 的职责分离为 ViewModel 和 Controller。在上图中,D
是一个只包含状态的 ViewModel,C
是一个执行命令的 Controller。B
是 XAML 绑定到的 DataContext。
B
,C
并且D
是用户控件的一部分。A
是一个包含两个用户控件实例的 DataContext。