在我的MVVM Light中,我通过实现IModalWindow接口来显示一个对话框。我可以使用
注册它SimpleIoc.Default.Register<IModalWindow, DialogView>();
使用此方法虽然我看不到如何注册实现相同接口的不同对话框并请求正确的接口。我查看了工厂方法,但找不到合适的例子。
相反,我使用了以下
SimpleIoc.Default.Register<IModalWindow>(() => { return new DialogView(); }, "DialogView");
允许我通过键访问特定的对话框类型,但由于这是一个单例,当我尝试再次显示对话框时因为实例已关闭而出现错误。
第二种方法还允许通过使用相同的密钥注册Mock来进行单元测试。
如何使用SimpleIoc注册不同的对话框,获取非单例实例并能够进行单元测试?