我正在使用WPF。我有几个视图模型实现了一个名为IPageView
的接口。
MainViewModel
也实施IPageView
和2个属性LiveView
和EditView
。
public MainViewModel : IPageView
{
public LiveViewModel LiveView{ get; set; }
public EditViewModel EditView{ get; set; }
}
我注册实现IPageView
的组件,如下所示:
Classes.FromThisAssembly().BasedOn<IPageView>().WithServiceBase();
我解决所有这样的IPageView
实例:
_container.ResolveAll<IPageView>();
我希望CastleWindsor将LiveViewModel
的实例注入LiveView
属性,并将EditViewModel
的实例注入EditView
。
这不会发生。属性为null。
我不喜欢为每个viewmodel创建特定的新接口,只是为了正确注册和解析组件。
事实上,我知道我不会有超过一个且只有一个类型为'ILiveView'或'IEditView'的视图模型可供选择,因此我想使用具体实现。
如何配置容器以在MainViewModel
中解析我的视图模型?谢谢。
像这样注册:
Classes.FromThisAssembly().BasedOn<IPageView>()
.WithService.Base()
.WithService.Self();