有没有办法通过ServiceLocator在运行时注册接口?

时间:2014-04-08 23:30:50

标签: c# wpf mvvm-light service-locator

我刚刚在MSDN杂志上阅读了Laurent的Messenger文章,尝试了几项测试,一切都按预期工作。

在"实施DialogService"部分,我注意到IDialogService的注册是通过调用SimpleIoc直接完成的。无论如何都要注册调用ServiceLocator的接口吗?

我认为使用ServiceLocator的重点是你可以将SimpleIoc换成另一个IOC吗?如果我的视图和viewmodel直接调用SimpleIoc,那就有点失败了。也许我不了解如何从ServiceLocator获取Ioc。

1 个答案:

答案 0 :(得分:0)

Microsoft.Practices.ServiceLocation.IServiceLocator仅适用于“获取”方案。

这是因为每个IoC容器都有不同的功能,因此有多种方式可以执行注册:

    代码中的
  • (正如您可能正在寻找的那样)
  • 来自XML配置文件
  • 通过特定于应用程序的一些外部数据源

例如,就像它在MVVM Light中使用一样,它也可以在一个非常不同的应用程序中使用:SharePoint