【发布时间】:2014-08-08 10:15:33
【问题描述】:
我将 Caliburn.Micro 与 Spring.net 一起使用,而不是默认的简单 IoC。我的自定义 Bootstrapper(源自 Caliburn 的 BootstrapperBase)正在工作,我可以在 Spring.net 中定义 ViewModel。但是视图仍然通过执行程序集的反射(命名约定)来解决。我使用 Bootstrapper 的以下方法添加程序集以解析 ViewModel 的视图。
protected override IEnumerable<Assembly> SelectAssemblies()
{
// hmm, want to change the way how the view is resolved... how to do this?
// ... use IoC or MEF for this task instead?
return new[]
{
// don't want to add every dll here
this.GetType().Assembly,
Assembly.Load("MyViewModels.Assembly")
};
}
如何更改解析视图的行为并使用 IoC 或 MEF 执行此任务? 问题是引导程序没有可以覆盖的虚拟方法来解决请求的视图。改变这种行为的出发点是什么?我认为必须存在类似的东西
protected virtual Control ResolveViewForModel(Type modelType) {...}
感谢任何提示。
【问题讨论】:
标签: mvvm mef ioc-container caliburn.micro