DI专题提供DI的最新资讯内容,帮你更好的了解DI。
我的理解是使用立面作为依赖注入的替代方法。如果我错了,请更正什么不清楚是什么时候应该使用一个或另一个。 每种方法的优点/缺点是什么?我应该如何确定何时使用一个或另一个? 最后,为什么不使用两者?我可以创建引用一个接口的立面。看来Sentry 2是这样写的。有最好的做法吗 FACADES Facades不是依赖注入的替代品。 Laravel Facade是服务定位器模式的实现,创建一个干净漂亮的访问
我有一个类型连接需要异步初始化。这种类型的实例被其他几种类型(例如,存储)使用,每种类型也需要异步初始化(静态,不是每个实例,并且这些初始化也依赖于Connections)。最后,我的逻辑类型(例如,逻辑)消耗这些存储实例。目前使用Simple Injector。 我尝试了几种不同的解决方案,但总有一种反模式存在。 显式初始化(​​时间耦合) 我目前使用的解决方案有Temporal Couplin
最近我发现自己没有过多地为类定义依赖关系并在构造函数中传递它们,但我总是传递DI容器并将其保存在私有属性中.这样我的类就没有非常明确的依赖关系,当我需要时,我从容器中获取所有内容. 不知怎的,我对这个解决方案有不好的感觉(除了访问容器引起的开销),但我真的不能想到太多的缺点.也许松散的依赖关系定义可能会降低类的可移植性,或者在重构时我会感到惊讶……? 你怎么看待这件事? 绝对错了.不要将DI容器放
我正在写我的第二个现实生活中的应用程序,它使用DI.总的来说,我认为它已经让一个更好的设计.但是有一些代码气味,我不知道如何解决. 我更喜欢使用构造函数注入,并且经常会发现我需要在构造函数中注入大约5个或更多的对象.似乎太多了,也许这是一个设计问题,没有得到SRP的权利.但是我认为我的使用DI也是被指责的. 我正在寻找“最佳实践”或“经验法则”,一般来说,我似乎注入了一切,那不是在.Net框架中,
在简单的术语和/或高级伪代码中,DI容器如何工作以及如何使用? 在其核心,DI容器基于接口和具体类型之间的映射创建对象. 这将允许您从容器请求抽象类型: IFoo f = container.Resolve<IFoo>(); 这要求您先前配置容器从IFoo映射到实现IFoo的具体类(例如Foo). 这本身并不是特别令人印象深刻,但DI容器做得更多: >他们使用自动布线,这意味着他们可以自动地弄清楚
注意:我还不能确定这个问题(这太新了),但我会用50分给出一个很好的答案,并给出100分的好答案(如果可能的话). 我需要将DI合并到我的Web API项目中.我目前有预期的Model和Controller文件夹/类,以及相应的Repository类. 这似乎工作了一段时间,但现在我需要使用DI与控制器,以便我可以将接口类型传递给控制器​​的构造函数. 我正在努力解决如何实施这个问题;也就是说,如
我正在尝试将DI / IoC编程方法引入我们的开发组,但其中一位开发人员提出了以下问题: 我们为什么需要它?有没有具体的例子可以向我展示使用像温莎城堡这样的DI / IoC框架的好处? 因此,我问是否有任何案例研究或文章证明DI / IoC可以在企业级.NET网站中受益? 提前致谢 更新:我知道DI / IoC带来的所有好处,但我还没有看到网络上的完整示例,该示例贯穿了使用DI / IoC创建应用
参见英文答案 > Ninject – how and when to inject                                    2个 我通过从NinjectHttpApplication派生Global并在web.config中使用NinjectHttpModule,在我的Web应用程序中成功使用Ninject 我现在要做的是在我的一个类库中使用DI,我不知道如何去做.我
目前我已经准备好了一个服务及其所有依赖项的Symfony2 DI容器实例.让我们说例如我有一个Car类,它有Engine和Lights作为依赖项. 在我当前的设置中,这两个依赖关系是在创建Car对象时通过setter注入自动创建的,但很可能这次我的Car对象不需要它的灯光,因此它不需要创建实例这种依赖. 有没有办法在Symfony DI中实现这一目标?因此,只在需要时才创建Lights对象的实例?
C#,nUnit和Rhino Mocks,如果证明是适用的. 我的TDD继续尝试围绕一个复杂的功能进行测试.假设我编写一个表单,当保存时,还必须在表单中保存依赖对象…答案,以形成问题,附件(如果可用)和“日志”条目(例如“blahblah更新表单”)或“blahblah附上一个文件”).这种保存功能还可以根据在保存功能中更改形式的状态,向各种人员发送电子邮件. 这意味着为了充分测试表单的所有依赖关
我正在读一本关于DI的书,它总是谈论DI框架“实例化对象图”.为什么这样说而不是“实例化对象”? 对象图由包含彼此引用的对象组成.此上下文中图形的另一个名称是网络. 如果忘记在对象之间设置引用,IOC系统将没有多大用处!这是对象自动获取对所需的其他对象的引用的方式,这是IOC系统的全部价值.
当谈到典型的构造函数依赖注入时,我很难理解看似明显的模式问题/限制.例如,假设我有一个ASP.NET MVC3控制器,它看起来像: Public Class MyController Inherits Controller Private ReadOnly mServiceA As IServiceA Private ReadOnly mServiceB As IServ
我已经制作了一个三层应用程序,如 answer所述: DAL with Repositories -> BLL with services and IRepository <- Asp.net mvc-app 为了让这个运行依赖注入我看到几个选项: 1.从Web应用程序添加对DAL的引用,以便在应用程序启动时设置绑定. 2.使用带有xml配置的容器 (3.使用反射来加载dal-assembly和查
我有一个ASP.NET核心WebAPI项目,我正在尝试添加配置到我的IEmailServic,我通过DI注入这样: services.AddTransient<IEmailSender, AuthMessageSender>(); AuthMessageSender的实例如何进入配置文件中的设置? 您应该使用具有强类型配置的 options模式: >创建您的EmailSettings强类型配置类:
假设我有一个User实体,我想在构造函数中将它的CreationTime属性设置为DateTime.Now.但作为单元测试采用者,我不想直接访问DateTime.Now,而是使用ITimeProvider: public class User { public User(ITimeProvider timeProvider) { // ... this.Cr
我正在构建一个MVC3应用程序,尝试使用IoC和构造函数注入.我的数据库(到目前为止)大约有50个表.我正在使用EF4(带有POCO T4模板)作为我的DAC代码.我正在使用存储库模式,每个表都有自己的存储库.我的服务层中的服务类是使用这些存储库注入的. 问题:我的服务类正在增加他们需要的存储库数量.在某些情况下,我正在接近10个存储库,它开始闻起来. 是否有一种设计存储库和服务类的通用方法,使得
所以我有一个服务,比方说,它是ASPNET Core上的电子邮件服务. 当我将我的服务添加到ASPNET DI容器时,我想在我的IServiceCollection上应用以下模式来设置我的服务. public interface IEmailService { void SendMail(string recipient, string message); } public void Co
好吧,所以最近我一直在阅读ninject,但是我很难理解是什么让它更好地解释为什么他们在wiki页面上提到’穷人’的DI.可悲的是我在维基上浏览了所有页面但仍然没有得到它=(. 通常我会将我的服务类包装在处理DI的工厂模式中,如下所示: public static class SomeTypeServiceFactory { public static SomeTypeService Ge
依赖注入这部分分为两部分来学习。第一部分自然是官网上的文档,另外一部分,是自己的“血泪时间史”。 之所以称之为“血泪时间史”,是因为在这部分上花费的时间实在是有点多,也就是前面提到过的“时间的教训”,所以在这里要记录下来,避免下次再犯这样的错误。 依赖注入 依赖注入是一个用来管理代码依赖的强大模式。 应用程序全局依赖 在这里主要说的是,在应用程序根组件AppComponent中注册那些被应用程序全
这篇文章主要介绍了PHP依赖注入(DI)和控制反转(IoC)的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下