Castle Windsor 具体类型解析和 属性 注入
Castle Windsor concrete type resolving and property injection
我正在使用 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
。
这不会发生。属性为空。
我不喜欢为我的每个 viewmodel 创建特定的新接口只是为了正确注册和解析组件的想法。
事实上,我知道我不会有超过一个而且只有一个 viewmodel 类型 'ILiveView' 或 'IEditView' 可供选择,因此我想使用具体实现.
如何配置容器来解析 MainViewModel
中的视图模型?
谢谢。
这样注册:
Classes.FromThisAssembly().BasedOn<IPageView>()
.WithService.Base()
.WithService.Self();
我正在使用 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
。
这不会发生。属性为空。
我不喜欢为我的每个 viewmodel 创建特定的新接口只是为了正确注册和解析组件的想法。
事实上,我知道我不会有超过一个而且只有一个 viewmodel 类型 'ILiveView' 或 'IEditView' 可供选择,因此我想使用具体实现.
如何配置容器来解析 MainViewModel
中的视图模型?
谢谢。
这样注册:
Classes.FromThisAssembly().BasedOn<IPageView>()
.WithService.Base()
.WithService.Self();