【发布时间】:2011-08-02 14:04:50
【问题描述】:
我正在使用 Caliburn.Micro 构建一个复合 UI 应用程序,并决定使用 Castle Windsor 构建 ViewModel 对象,以便他们需要操作的任何服务都可以自动注入并避免服务定位器反模式。
问题在于 Castle Windsor 正在使用属性注入将我的视图模型对象的 ActiveItem 属性设置为(似乎是它找到的第一个与 IScreen 服务匹配的组件),因为它解决了它们。
我不希望它这样做,因为我想通过调用ActivateItem() 自己设置活动屏幕,当我确定要为哪个视图模型渲染视图时。
看起来不能让温莎城堡不执行属性注入(我正在使用带有IWindsorInstaller 类的流畅注册API),那么有什么好的方法可以采取在这里?
我应该不从容器中解析 ViewModel 对象吗?如果没有,有什么好的方法可以避免服务定位器反模式?
非常感谢。
【问题讨论】:
标签: c# castle-windsor caliburn.micro