问题标签 [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 投票
2 回答
1129 浏览

dependency-injection - Container.GetAllInstances 的等价物是什么在 NInject 中?

我正在使用 NInject 构建一个消息代理,我需要在容器中找到所有实现 Consumes 的实例,这是一个将类标记为能够使用特定消息类型的接口。

是否支持此场景?

0 投票
1 回答
356 浏览

silverlight - ninject-contrib 是否支持 Silverlight?

我正在使用 Prism 构建 Silverlight 应用程序,我们想使用 NInject。我已经下载了 ninject-contrib 以使用他们的 NInject 引导程序,但它似乎没有构建 Silverlight 程序集。我自己将它编译到 Silverlight,但它使 Visual Studio 崩溃。

有人已经成功地将 ninject-contrib 移植到 Silverlight 吗?

0 投票
1 回答
257 浏览

.net - ninject 是否被视为容器?

我正在和某人交谈,并提到我正在学习 IOC,并且正在使用 ninject 来感受事物。

他问我用的是什么容器?我告诉他ninject。

不知道他指的是什么,我知道温莎城堡的产品更受欢迎。

有人可以帮我解决这个问题吗?我在这里想念什么?

0 投票
1 回答
1151 浏览

.net - 当类型的构造函数未知时,如何制作 Ninject Provider?

我决定尝试变出一个容器组件来与 FubuMVC 交互。很酷的部分是它通过了 FubuMVC.Container.StructureMap 程序集所做的所有测试。但是,当我将它放入 FubuSample 时。我收到激活错误。

错误是因为在行为的提供者中,我只调用无参数构造函数来构建行为实例。这在现实生活中似乎是不可接受的。

这是它的设置方式:

我的 Load 方法中有这些绑定:

在我的提供者的 Create 方法中是:

所以我的问题是,当我完全不知道构造函数会是什么样子时,我应该如何设置提供者来创建服务的实例?或者更确切地说,如果我使用 ConstructorInfo 来确定构造函数 Ninject 是否会注入适当的依赖项?

这是使用 Ninject 2b,因为 FubuMvc 需要 CommonServiceLocator 支持。

0 投票
1 回答
285 浏览

.net - Windsor AddComponentInstance 问题

我已经使用 xml 配置文件成功设置了温莎城堡,一切正常。唯一的问题是,在一个方法上,我需要 Windsor 将现有实例传递给构造函数,所以我使用了

在 Resolve 方法之前,但这不起作用,因为 Windsor 基于 xml 配置文件创建了一个新的 IMyClass 实例。除了我需要传递现有实例的这个特定方法之外,这种行为在其他所有地方都很好。我该如何解决这个问题。试图在网上找到文档,但直到现在还没有运气:(。

0 投票
2 回答
832 浏览

asp.net-mvc - Ninject MVC 是否应该与 MVC 2 Preview 一起使用?

我正在运行 MVC 2 Preview,这是我第一次尝试使用 Ninject2 MVC

我大陆得到的错误是:尝试创建“MyMVC.Controllers.EventsController”类型的控制器时发生错误。确保控制器有一个无参数的公共构造函数。

我在 Global.cs 中的内容是:

这就是我的控制器的样子。

0 投票
3 回答
4527 浏览

unity-container - 统一处置对象

有没有办法让 Unity 将属性注入的对象作为 Teardown 的一部分进行处理?

背景是我正在开发一个使用 ASP.NET MVC 2、Unity 和 WCF 的应用程序。我们编写了自己的 MVC 控制器工厂,它使用统一来实例化控制器,并使用控制器公共属性上的 [Dependency] 属性注入 WCF 代理。在页面生命周期结束时,会调用控制器工厂的 ReleaseController 方法,我们调用 IUnityContainer.Teardown(theMvcController)。此时控制器已按预期处理,但我还需要处理注入的 wcf 代理。(实际上我需要对它们调用 Close 和/或 Abort 而不是 Dispose 但这是后来的问题。)

我当然可以覆盖控制器的 Dispose 方法并清理那里的代理,但我不希望控制器必须知道注入接口的生命周期,甚至它们引用 WCF 代理。

如果我需要自己为此编写代码 - 最好的扩展点是什么?我会很感激任何指针。

0 投票
2 回答
511 浏览

asp.net - ASP.Net 环境中的 ServiceLocator/IOC

我有一个本土框架,其中包括一个使用静态字典实现的简单 ServiceLocator 类。它是为 WinForms 环境开发的,可以很好地完成我想要的。

当在 ASP.Net 框架中使用该框架时,这被证明是一场灾难;Dictionary 是一个静态变量,在第一次使用时会被实例化,并且每个 ASP.Net 应用程序都使用相同的字典。这不是我的设计意图。

例如,Web 应用程序尝试注册数据库审计服务 IAudiService。错误!!该服务已由第一个用户注册!只是在 ASP.Net 环境中可能发生的静态变量问题的一小部分。

我已经尝试过 Autofac IOC。我可以通过使用 Autofac(或其他一些 IOC)来避免我的静态变量问题吗?

英国石油公司……

0 投票
2 回答
1236 浏览

.net - Autofac 是否有*可选* Xml 配置的最佳实践?

背景:我想向其他一些开发人员分发一个库(类似于 SDK 或抽象一些内部 Web 服务的工具包)。我使用 Autofac 来注入不同版本的底层服务,主要用于存根。我想将此程序集分发给广泛的开发人员:了解 IoC 的用户和不了解 IoC 的用户。

对于任何精明的开发人员,他们可以创建自己的实现来注入。否则,开发人员应该能够使用没有配置的程序集,并且永远不知道或关心 IoC 正在幕后发生。

有趣的东西:我可以为 Autofac 提供 Xml 配置,或者我可以以编程方式配置组件(后者是首选方法)。在这种情况下,直到运行时我才知道配置了什么,因此可能需要 Xml 配置。有没有办法让 Autofac 使用 Xml 配置(如果存在),如果没有提供则忽略它?

注意:我可以通过检查特定部分(“autofac”)的配置来手动实现这一点;如果它不存在,那么不要打电话

有没有比手动检查配置更好的方法(最好是隐藏在 Autofac 中的神奇东西,因为它似乎可以做任何你要求的事情!)

0 投票
1 回答
2089 浏览

c# - 具有多个具体实现的 Castle Windsor 依赖注入

Castle Windsor 是否有一种方法可以将单个接口的多个具体实现注入到构造函数中?

我想做这样的事情:

请注意,在这个级别上,我无法访问IWindsorContainer并希望保持这种状态。