问题标签 [ioc-container]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2493 浏览

dependency-injection - 如果这些容器属于不同的层,每个应用程序有许多 Castle Windsor 容器是否正确?

我最近一直在玩 Castle Windsor,并意识到我可以用它来支持我目前已经使用的类似容器的对象。到目前为止,我只阅读了有关每个应用程序只有一个容器实例的应用程序的信息。如果这些容器属于不同的层,每个应用程序有多个容器是否正确?

我问的原因是因为我想利用 Windsor 的依赖解析和 XML 配置来为我自己的容器类对象。我目前使用 Windsor 与 MonoRail 的集成,混合与 MonoRail 及其控制器层无关的组件似乎不正确。我的第二个容器会有自己的配置文件,并且不知道 MonoRail 和它使用的容器。它完全位于不同的层,最终将注册为 MonoRail 控制器的依赖项。我觉得应该避免传递容器实例,所以这是避免这种情况的正确方法吗?

0 投票
2 回答
438 浏览

asp.net - spring.net 是否递归子目录?

当 spring.net 框架为 asp.net 应用程序启动时,注册 IoC 容器中所有对象的组件是否递归 web.config 中引用的所有子目录?

例如。

我相信查看调试信息(跟踪侦听器)输出的答案是肯定的。

我看到的问题是,当它尝试在 '\bin\clientservice' 目录中创建实例时,即使 dll 存在于子目录中,它也会失败并显示错误消息;

'无法加载文件或程序集'log4net,Version=1.2.10.0,Culture=neutral,PublicKeyToken=1b44e1d426115821'或其依赖项之一。该系统找不到指定的文件。'

有人有任何想法吗?

干杯

奥利

0 投票
7 回答
16918 浏览

inversion-of-control - 什么是组件驱动开发?

组件驱动开发术语开始被广泛使用,尤其是。与控制反转有关。

  1. 它是什么?
  2. 它解决了哪些问题?
  3. 什么时候合适,什么时候不合适?
0 投票
5 回答
1160 浏览

java-me - 寻找对 J2ME 友好的 IoC 容器已经开始!

我正处于 Blackberry/J2ME 项目的初始阶段——以及这个出色平台带来的其他限制,缺乏对反射和 1.3 语言级别的支持意味着绝大多数现有的 IoC 容器无法使用。(谷歌有没有 AOP 的 Android 版 Guice,但即便如此也需要支持注释)。

因此,J2ME 上的 IoC 容器空间非常有限。引起我注意的一个框架叫做Signal Framework,它看起来很有前途。它试图在概念上与 Spring Framework 的 IoC 保持接近,实现其功能的一小部分,并且这样做不依赖于字节码修改或导致运行时 xml 解析。相反,它在构建时处理配置 XML 以生成实现此 IoC 功能的 java 代码。

一般来说,在构建时生成代码对于移动应用程序来说似乎是一种非常明智的方法——如果我的应用程序必须在用户设备上进行较少的 XML 解析,那也很棒!

那么,您在 J2ME/CLDC 上实施 IoC 有什么经验,您是如何消除口中的苦味的呢?

0 投票
4 回答
2130 浏览

asp.net-mvc - 在没有 IoC 容器的情况下如何对控制器进行单元测试?

在构建我最新的 ASP.NET MVC 项目时,我开始涉足单元测试、依赖注入和所有爵士乐。

我现在想对我的控制器进行单元测试,但我很难弄清楚如何在没有 IoC 容器的情况下适当地做到这一点。

以一个简单的控制器为例:

由于它直接实例化了 SqlQuestionsRepository,因此该类不是非常可单元测试的。因此,让我们走下依赖注入路线并执行以下操作:

这似乎更好。我现在可以使用模拟 IQuestionsRepository 轻松编写单元测试。但是,现在要实例化控制器的是什么?在调用链更上层的某个地方 SqlQuestionRepository 将不得不被实例化。似乎我只是将问题转移到其他地方,而不是摆脱它。

现在,我知道这是一个很好的例子,说明 IoC 容器可以通过为我连接控制器依赖项来帮助您,同时使我的控制器易于进行单元测试。

我的问题是,如何在没有IoC 容器的情况下对这种性质的事物进行单元测试?

注意:我并不反对 IoC 容器,而且我可能很快就会走上这条路。但是,我很好奇不使用它们的人有什么替代方案。

0 投票
3 回答
383 浏览

c# - 如何检测类型是否为 Func并获取 T 的类型

我想知道是否可以升级我用来支持延迟加载的基本 IoC 容器。因此,如果我已经注册了 IFoo,我希望 IoC 容器知道如何满足以下两个依赖项(第一个是 IoC 容器工作的标准方式,而第二个返回一个简单的委托,该委托在何时调用 IFoo 的容器它被调用)。

当我尝试编写实际执行此操作的代码时,问题就出现了。是否有可以编译以下伪代码的语法?

或者以另一种方式提出我的问题,如果我有一个类型T,我如何检测它是否是一个实例Func<X>,如果是,那么类型是X什么?

0 投票
3 回答
669 浏览

unity-container - 如何隐藏真正的 IoC 容器库?

我想将我的所有代码与我选择的 IoC 容器库(Unity)隔离开来。为此,我创建了一个公开 Register() 和 Resolve() 的 IContainer 接口。我创建了一个名为 UnityContainerAdapter 的类,它实现了 IContainer 并包装了真实的容器。所以只有定义了 UnityContainerAdapter 的程序集才知道 Unity 库。

我的孤立思想有漏洞。Unity 搜索类型成员的属性以了解在何处注入依赖项。我见过的大多数 IoC 库也支持这一点。我遇到的问题是我想使用该功能,但我不希望我的类依赖于 Unity 特定属性。

您对如何解决此问题有任何建议吗?

理想情况下,我会创建自己的 [Dependency] 属性并在我的代码中使用该属性。但是我需要告诉真正的容器搜索我的属性而不是它自己的属性。

0 投票
1 回答
662 浏览

c# - 如何将 daoFactory 注入 NHibernate EventListener

我需要将一些全局服务(daoFactory)注入到订阅 PostUpdate 事件的 EventListenet 中。我读过可以这样做:

但是这段代码只是抛出异常:没有为 EventListener 指定无参数构造函数。这是可以理解的行为,因为我还没有将我的服务添加到任何容器中。那么如何在 NHibernate 中指定 IoC 容器呢?

0 投票
2 回答
372 浏览

inversion-of-control - Spring.Net IoC 和魔术字符串

我一直在考虑 IApplicationContext.GetObject(string name) 方法,它似乎相当依赖魔术字符串来从应用程序上下文中获取对象。使用StructureMap等其他容器,您可以使用泛型来指定配置和请求对象,但有没有比使用带有 Spring.Net IoC 容器的字符串从 ApplicationContext 请求对象更好的方法?

0 投票
3 回答
3954 浏览

c# - Unity Container - 将 T 动态传递给 Resolve 方法

我创建了一个我已经键入的 ISearchable 接口,以便我可以检索 T 的 IEnumerable 作为结果。

我有许多为不同的域对象实现 ISearchable 的服务......

我想(通过 Unity)解决基于类型的 ISearchable ,但我正在努力让它工作......

以下内容无法编译,但希望能对我想要实现的目标有所了解。

任何帮助都感激不尽!

谢谢,

安迪