我正在尝试从 MainViewModel 实例化 SecondViewModel 注入第二个参数,这些参数是在 IoCContainer 中注册的服务和来自 MainVM 的对象。
代码是这样的:
class MainViewModel
{
public MainViewModel()
{
}
private string message = "the message";
public string Message { get; set; }
}
class SecondViewModel
{
public SecondViewModel(IService service, string message)
{
}
}
现在,我知道我可以让 IoC Container 将 SecondViewModelFactory(承载服务实例)注入 MainViewModel,因此它可以通过它创建 SVM,但是如果 IService 的实现非常繁重,我不想实例化它,但当我真的需要它时。
如果我必须以类似的方式实例化其他 ViewModel 怎么办?我是否必须创建大量 VMFactories 和构造函数的参数?
如果我使用通用 ViewModelFactory,则需要实例化它,传递我拥有的每个 ViewModel 所需的所有服务,无论它们是否会被创建。
你知道我的案子有什么更好的解决方案吗?