Castle Windsor 具体类型解析和 属性 注入

Castle Windsor concrete type resolving and property injection

我正在使用 WPF。 我有几个 视图模型 实现了一个名为 IPageView.

接口

MainViewModel 还实现了 IPageView 和 2 个属性 LiveViewEditView

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