inversion-of-control相关内容

简单的 Spring,将 ClasspathApplicationContext 用于独立应用程序,如何重用?

如果我有一个独立的主应用程序.说20节课.它们都可能随时需要与 spring 配置(ApplicationContext)定义的 bean 进行交互.我会在主应用程序入口点引导类路径应用程序上下文.但是如何重用已经实例化的 bean? 例如,将 ClasspathApplicationContext 设置为单例似乎是一种糟糕的方法,但这就是想法. 我以为我看到了 GlobalConte ..
发布时间:2022-01-03 23:56:42 Java开发

DI/IoC、NHibernate 并帮助它们协同工作

我正在努力了解 DI/IoC、NHibernate,并让它们为我正在开发的应用程序很好地协同工作.我对 NHibernate 和 DI/IoC 都很陌生,所以不太确定我正在做的事情是否是明智的做法.这是场景: 该应用程序使用户能够计算特定金融交易的特定价值(称为保证金).每笔交易的保证金值的计算由抽象 MarginCalculator 类的具体实现进行,具体实现取决于特定交易的产品类型(由产 ..
发布时间:2022-01-02 16:03:51 C#/.NET

模拟“System.Console"行为

是否有通过针对接口而不是 System.Console 进行编程来使 C# 控制台应用程序可进行单元测试的标准方法? 例如,使用 IConsole 接口? 你做过吗,你用的什么方法? 当您的应用程序需要写入标准输出时,您是否公开了事件? 解决方案 我认为您使用界面的方法会奏效,但我认为我不会使用事件.假设应用程序不接受命令行参数以外的用户输入,我可能会使用这样的东西来包装 ..
发布时间:2021-12-31 14:52:56 C#/.NET

你使用哪个 .NET 依赖注入框架?

目前有很多适用于 .NET 的 DI/IoC 框架(http://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx).我觉得很难选择.所以我想衡量一下公众意见,看看哪个框架最受欢迎——所以请在这里发布你最喜欢的框架,让人们投票...... 解决方案 我目前正在使用 温莎城堡.主要是因为它与 Rhino ..
发布时间:2021-12-26 11:01:24 C#/.NET

.net-core 依赖注入

我有一个通用存储库,我想为 DI 注册它,它实现了一个接口 IRepository. 通常我会像这样创建一个实例: IRepository repo = new Repository(); 但是,我正在尝试在发布之前加快 .net 5 的速度,并希望将其与 DI 一起使用,我采取了以下措施: services.AddTransient, DAL.Repository>(); 但这感觉 ..
发布时间:2021-12-26 11:00:57 C#/.NET

当关键类需要 Session(或其他特定于上下文的变量)时如何设置 IoC

我试图弄清楚在依赖类可以根据应用程序中的某些变量(在本例中为会话状态)更改的情况下如何使用 IoC.例如,我们的每个客户都有不同的数据库,因此与数据库的连接需要建立在存储在其 Session 中的值上(特别是因为有些用户如果拥有多个业务,则可能拥有多个数据库,并且会在数据库之间切换). 以下是我们目前如何设置此结构的通用示例: 公共类 MyTestController : Controll ..
发布时间:2021-12-26 11:00:46 C#/.NET

当PageHandlerFactory和IHttpHandlerFactory存在时,为什么每个人都说ASP.NET webforms中的依赖注入很难?

所以我有一个旧的 webforms 站点,并且正在努力使其更易于维护.扔掉它并重写它不是一种选择. IoC 显然是它得到的第一件事,但这让我留下了服务定位器模式和糟糕的品味,以及是否可以做得更好的疑惑. 我在线和离线交谈过的各种人告诉我,我可以使用 HttpModule 进行属性注入,该模块扫描 Page 类以查找用 Inject 属性或类似属性装饰的属性,但这听起来像是反射命中(缓存 ..

为什么不传递你的 IoC 容器呢?

在这个 AutoFac“最佳实践"页面 (http://code.google.com/p/autofac/wiki/BestPractices),他们说: 不要传递容器授予组件访问容器的权限,或将其存储在公共静态属性中,或使 Resolve() 等函数在全局“IoC"类上可用,都违背了使用依赖注入的目的.这种设计与服务定位器模式有更多的共同点.如果组件依赖于容器,请查看它们如何使用容器来检 ..
发布时间:2021-12-26 10:57:14 其他开发

抽象不应该依赖于细节.细节应该取决于抽象?

在过去的几天里,我已经阅读了很多关于依赖注入/控制反转/依赖反转的内容.我认为,现在我对这个概念的理解要好得多.但我仍然没有从维基百科中得到以下内容: A.高级模块不应该依赖于低级模块.两个都应该依赖于抽象.B. 抽象不应该依赖于细节.细节应该依赖于抽象. 我理解高级模块的部分不应该依赖于低级模块. 但是,我对抽象和细节感到困惑.有人可以帮我简化它们吗?谢谢. 解决方案 这意味 ..
发布时间:2021-12-26 10:55:33 其他开发

类库中的 IoC.在哪里引导

我正在使用一个可以被其他组件重用的类库.在这个类库中,我使用 unity 进行依赖注入.对于这个类库,我创建了一个测试项目.调用者还会得到一个测试项目.我不确定的一件事是绑定的位置.我应该将其合并到类库中还是应该从调用应用程序中执行此操作? 解决方案 这是一个有趣的问题.您如何依赖注入没有入口点的可重用程序集.我真的很想看到其他人的回答. 依赖注入是入口点程序集的责任.然而,如果您有 ..

Angular 2 可注入接口?

今天我偶然发现了一些我认为不会给我带来麻烦的事情. 在 Java 和 Spring 中,我可以声明两个都实现给定接口的 bean,而在另一个注入它们的类中,我只使用接口;事实上,这就是我喜欢 IoC 的原因:你不需要真正知道你在使用什么对象,只要它种类. 所以在我的小 Angular2/Typescript 程序中,我试图做同样的事情: webapp.module.ts: .. ..

与 ninject 的循环依赖

我正在尝试找出如何用 ninject 绑定这样的东西的正确方法. 接口 IMainService{void DoStuff();}接口IOtherService{void DoSomeMagic();}抽象类 BaseClass{//这里有很多东西}类 MainClass : BaseClass, IMainService{公共主类(IOtherService s){}公共无效 DoStuff( ..
发布时间:2021-12-26 10:50:01 C#/.NET

使用 servicelocation 而不是构造函数注入来避免编写工厂类的负载是否不好

现在我们使用 DI/IOC,当我们需要将额外的参数传递给构造函数时,我们使用工厂类,例如 公共类EmailSender{内部 EmailSender(字符串 toEmail,字符串主题,字符串正文,ILogger emailLogger){.....}}公共类 EmailSenderFactory{ILogger emailLogger;公共 EmailSenderFactory(ILogger ..

使用 IoC 容器时,原始构造函数参数是一个坏主意吗?

标准新手免责声明:我是 IoC 的新手并且收到了混合信号.我正在寻找有关以下情况的一些指导. 假设我有以下接口和实现: 公共接口 IImageFileGenerator{无效重命名文件();void CopyFiles();}公共类 ImageFileGenerator : IImageFileGenerator{私有只读 IList_链接;私有只读字符串_sourceFolder;私有只 ..

使用简单注入器实现每线程和每 Web 请求的混合生活方式

我使用 SimpleInjector 作为我的 IoC 库.我根据网络请求注册 DbContext 并且它工作正常.但是有一项任务是我在后台线程中运行的.所以,我在创建 DbContext 实例时遇到了问题.例如 Service1 有一个 DbContext 的实例Service2 有一个 DbContext 的实例 Service1 和 Service2 从后台线程运行. Servi ..

如何正确使用 Unity 将 ConnectionString 传递给我的存储库类?

我刚刚开始使用 Microsoft 的 Unity Application Blocks Dependency Injection 库,但我已经不知所措了. 这是我的 IoC 类,它将处理我的具体类到它们的接口类型的实例化(所以我不必每次在我的控制器中想要一个存储库时都在 IoC 容器上调用 Resolve): 公共类IoC{公共静态无效初始化(UnityConfigurationSect ..