inversion-of-control相关内容
如果我有一个独立的主应用程序.说20节课.它们都可能随时需要与 spring 配置(ApplicationContext)定义的 bean 进行交互.我会在主应用程序入口点引导类路径应用程序上下文.但是如何重用已经实例化的 bean? 例如,将 ClasspathApplicationContext 设置为单例似乎是一种糟糕的方法,但这就是想法. 我以为我看到了 GlobalConte
..
我正在尝试在 Unity 2.0 的配置文件中注册通用类型,但似乎无法正确设置.我在这里指的是 MS 文档:http://msdn.microsoft.com/en-us/library/ff660933%28v=PandP.20%29.aspx#_Generic_Types 代码如下: 公共接口 IRepository其中 T : 班级{...}公共类 GenericRepository
..
我正在努力了解 DI/IoC、NHibernate,并让它们为我正在开发的应用程序很好地协同工作.我对 NHibernate 和 DI/IoC 都很陌生,所以不太确定我正在做的事情是否是明智的做法.这是场景: 该应用程序使用户能够计算特定金融交易的特定价值(称为保证金).每笔交易的保证金值的计算由抽象 MarginCalculator 类的具体实现进行,具体实现取决于特定交易的产品类型(由产
..
是否有通过针对接口而不是 System.Console 进行编程来使 C# 控制台应用程序可进行单元测试的标准方法? 例如,使用 IConsole 接口? 你做过吗,你用的什么方法? 当您的应用程序需要写入标准输出时,您是否公开了事件? 解决方案 我认为您使用界面的方法会奏效,但我认为我不会使用事件.假设应用程序不接受命令行参数以外的用户输入,我可能会使用这样的东西来包装
..
目前有很多适用于 .NET 的 DI/IoC 框架(http://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx).我觉得很难选择.所以我想衡量一下公众意见,看看哪个框架最受欢迎——所以请在这里发布你最喜欢的框架,让人们投票...... 解决方案 我目前正在使用 温莎城堡.主要是因为它与 Rhino
..
我有一个通用存储库,我想为 DI 注册它,它实现了一个接口 IRepository. 通常我会像这样创建一个实例: IRepository repo = new Repository(); 但是,我正在尝试在发布之前加快 .net 5 的速度,并希望将其与 DI 一起使用,我采取了以下措施: services.AddTransient, DAL.Repository>(); 但这感觉
..
我试图弄清楚在依赖类可以根据应用程序中的某些变量(在本例中为会话状态)更改的情况下如何使用 IoC.例如,我们的每个客户都有不同的数据库,因此与数据库的连接需要建立在存储在其 Session 中的值上(特别是因为有些用户如果拥有多个业务,则可能拥有多个数据库,并且会在数据库之间切换). 以下是我们目前如何设置此结构的通用示例: 公共类 MyTestController : Controll
..
所以我有一个旧的 webforms 站点,并且正在努力使其更易于维护.扔掉它并重写它不是一种选择. IoC 显然是它得到的第一件事,但这让我留下了服务定位器模式和糟糕的品味,以及是否可以做得更好的疑惑. 我在线和离线交谈过的各种人告诉我,我可以使用 HttpModule 进行属性注入,该模块扫描 Page 类以查找用 Inject 属性或类似属性装饰的属性,但这听起来像是反射命中(缓存
..
在这个 AutoFac“最佳实践"页面 (http://code.google.com/p/autofac/wiki/BestPractices),他们说: 不要传递容器授予组件访问容器的权限,或将其存储在公共静态属性中,或使 Resolve() 等函数在全局“IoC"类上可用,都违背了使用依赖注入的目的.这种设计与服务定位器模式有更多的共同点.如果组件依赖于容器,请查看它们如何使用容器来检
..
在过去的几天里,我已经阅读了很多关于依赖注入/控制反转/依赖反转的内容.我认为,现在我对这个概念的理解要好得多.但我仍然没有从维基百科中得到以下内容: A.高级模块不应该依赖于低级模块.两个都应该依赖于抽象.B. 抽象不应该依赖于细节.细节应该依赖于抽象. 我理解高级模块的部分不应该依赖于低级模块. 但是,我对抽象和细节感到困惑.有人可以帮我简化它们吗?谢谢. 解决方案 这意味
..
我正在使用一个可以被其他组件重用的类库.在这个类库中,我使用 unity 进行依赖注入.对于这个类库,我创建了一个测试项目.调用者还会得到一个测试项目.我不确定的一件事是绑定的位置.我应该将其合并到类库中还是应该从调用应用程序中执行此操作? 解决方案 这是一个有趣的问题.您如何依赖注入没有入口点的可重用程序集.我真的很想看到其他人的回答. 依赖注入是入口点程序集的责任.然而,如果您有
..
今天我偶然发现了一些我认为不会给我带来麻烦的事情. 在 Java 和 Spring 中,我可以声明两个都实现给定接口的 bean,而在另一个注入它们的类中,我只使用接口;事实上,这就是我喜欢 IoC 的原因:你不需要真正知道你在使用什么对象,只要它种类. 所以在我的小 Angular2/Typescript 程序中,我试图做同样的事情: webapp.module.ts: ..
..
示例: class MyClass{成分 m_Composition;无效我的类(){m_Composition = new Composition( this );}} 我有兴趣在这里使用依赖注入.所以我必须将构造函数重构为: void MyClass( Composition composition ){m_Composition = 组合物;} 但是我现在遇到了一个问题,因为 Com
..
我正在尝试找出如何用 ninject 绑定这样的东西的正确方法. 接口 IMainService{void DoStuff();}接口IOtherService{void DoSomeMagic();}抽象类 BaseClass{//这里有很多东西}类 MainClass : BaseClass, IMainService{公共主类(IOtherService s){}公共无效 DoStuff(
..
现在我们使用 DI/IOC,当我们需要将额外的参数传递给构造函数时,我们使用工厂类,例如 公共类EmailSender{内部 EmailSender(字符串 toEmail,字符串主题,字符串正文,ILogger emailLogger){.....}}公共类 EmailSenderFactory{ILogger emailLogger;公共 EmailSenderFactory(ILogger
..
标准新手免责声明:我是 IoC 的新手并且收到了混合信号.我正在寻找有关以下情况的一些指导. 假设我有以下接口和实现: 公共接口 IImageFileGenerator{无效重命名文件();void CopyFiles();}公共类 ImageFileGenerator : IImageFileGenerator{私有只读 IList_链接;私有只读字符串_sourceFolder;私有只
..
我有两个示例类 class ClassToResolve{私人列表_coll;public ClassToResolve(Listcoll){_coll = 科尔;}}类 CollectionItem{//...} 我需要解析 ClassToResolve var classToResolve = new ClassToResolve(new List(){新的集合项(),新的集合项(),新
..
我使用 SimpleInjector 作为我的 IoC 库.我根据网络请求注册 DbContext 并且它工作正常.但是有一项任务是我在后台线程中运行的.所以,我在创建 DbContext 实例时遇到了问题.例如 Service1 有一个 DbContext 的实例Service2 有一个 DbContext 的实例 Service1 和 Service2 从后台线程运行. Servi
..
我刚刚开始使用 Microsoft 的 Unity Application Blocks Dependency Injection 库,但我已经不知所措了. 这是我的 IoC 类,它将处理我的具体类到它们的接口类型的实例化(所以我不必每次在我的控制器中想要一个存储库时都在 IoC 容器上调用 Resolve): 公共类IoC{公共静态无效初始化(UnityConfigurationSect
..
我使用 ektorp 连接到 CouchDB. 构建 ektorp HttpClient 实例的方法是使用构建器模式: HttpClient httpClient = new StdHttpClient.Builder().host("mychouchdbhost").port(4455).建造(); 我对 Spring 比较陌生.请建议我如何在我的上下文中配置 HttpClient 以
..