- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我知道CommonServiceLocator是一个中间关系,用于允许您切换出不同的IoC容器,但是查看MVVM Light的示例代码(尤其是ViewModelLocator),在某种意义上似乎很有趣
您将SimpleIoC注册为默认定位器,但同时在SimpleIoc默认实例上调用了Register。
因此,如果将来要删除SimpleIoC,这是否意味着您需要更新所有注册调用?
另一个问题是,过去使用过城堡温莎,并且通过.config文件配置它们支持加载类型,在Windows 8场景中它将如何工作?
我仍在尝试找到该场景的使用IoC的意义所在?
最佳答案
Common Service Locator实现保证您不需要替换getter调用(GetInstance,GetAllInstances等),但是它们在那里停止了。注册是使IOC容器与众不同的原因。例如,正如您提到的,某些支持使用配置文件进行配置(而SimpleIoc则不支持)。所以是的,当用您选择的另一个IOC容器替换SimpleIoc时,通常将替换注册部分。请注意,这通常是可以的,因为这些调用通常在同一位置进行分组,因此很容易替换。
有关更多信息,请检查http://commonservicelocator.codeplex.com/页面。
请注意,我将SimpleIoc添加到MVVM Light的目标不是提供功能强大的IOC容器。实际上,我屈服于现有的(CaSTLe Windsor,StructureMap,Unity等)。相反,我想提供一种简单的实现方式,以吸引IOC容器领域中没有经验的用户。这个想法是,当他们需要更多高级功能时,它们将转向另一个更复杂的实现。
希望这有道理!
劳伦特
关于.net - MVVM Light-简单的IoC + CommonServiceLocator吗?试图了解目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10042628/
我想猜测“环境容器”与它是一个静态类这一事实有关,但这只是一个猜测。 或者这是指标准模式? (也就是说,我真的需要从头到尾读完那本 GoF 书) namespace Microsoft.Practic
目前当我需要向基类中注入(inject)依赖时,我使用下面的代码: public class BaseClass { readonly IService _service; publi
我有一个基于 sharp-architecture 的网络应用程序框架。它实际上将 NHibernate 用于 dal,并且我在 (VIEW-CONTROLLER) 和 DAL 之间添加了一个服务层。
我喜欢在我的 Visual Studio Community 2015 项目中包含 CommonServiceLocator.MefAdapter。当我尝试安装包时:https://www.nuget
我尝试运行以下代码: using System.Web.Http; using System.Web.Mvc; using Conduit.Mam.ClientSerivces.Dal.Configu
我是一名优秀的程序员,十分优秀!