castle-windsor - Castle Windsor 混凝土类型解析和属性注入
问题描述
我正在使用 WPF。我有几个视图模型实现了一个名为IPageView
.
MainViewModel
也将IPageView
and 实现为 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
toLiveView
属性的实例和一个EditViewModel
to的实例EditView
。
这没有发生。属性为空。
我不喜欢为我的每个视图模型创建特定的新接口只是为了正确注册和解析组件的想法。
事实上,我知道我永远不会有超过一个且只有一个“ILiveView”或“IEditView”类型的视图模型可供选择,因此我想使用具体的实现。
如何配置容器以解析我的视图模型MainViewModel
?谢谢你。
解决方案
像这样注册:
Classes.FromThisAssembly().BasedOn<IPageView>()
.WithService.Base()
.WithService.Self();
推荐阅读
- php - Laravel 8 - 甜蜜警报正在工作,但 ajax 不工作
- swift - 协议“形状”只能用作通用约束,因为它具有自身或相关类型要求
- php - pdf 创建 Prestashop 的 Smarty 异常
- c# - 如何从 API 返回信息?C#
- docker - 如何限制一个docker容器可以看到多少cpu
- c - 使用指针访问结构中的结构数组中的成员
- iostream - 计算 iostream 中的正负数
- android - 使用服务在音乐播放器中播放歌曲时出错
- cmd - 使用命令行合并多个子文件夹中的 CSV
- php - 如何使用 Angular 处理 401、404 或 503 错误 PHP API