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

castle-windsor - 如何在 Web 表单网站项目中连接 Castle Windsor

我正在尝试将依赖注入引入现有的 Web 窗体应用程序。该项目被创建为一个网站项目(而不是一个 Web 应用程序项目)。我已经看到您在 global.asax.cs 中创建全局类的示例,它看起来像这样:

但是在一个网站项目中,如果你要求添加一个全局类,它只会添加包含服务器端脚本标签的 global.asax:

我似乎没有办法从这里的 HttpApplication(和 IContainerAccessor)派生。还是我错过了一些明显的东西?

0 投票
2 回答
1909 浏览

asp.net-mvc - 让我的 MVC 更上一层楼:DI 和工作单元

我研究过像 Nerddinner 和 ContactManager 这样更简单的应用程序以及像 Kigg 这样更复杂的应用程序。我了解简单的,现在我想了解更复杂的。

通常,较简单的应用程序在 LINQtoSQL 或实体框架之上具有存储库类和接口(尽可能松散耦合)。从控制器调用存储库以执行必要的数据操作。

当我检查更复杂的应用程序(如 Kigg 或 Oxite)时,我看到的一种常见模式是引入(我在这里只是触及表面,但我必须从某个地方开始):

  • IOC DI(以 Kigg 为例)
  • Web 请求生命周期管理器
  • 工作单元

以下是我的问题:

我知道,为了真正拥有松散耦合的应用程序,您必须使用 Unity 之类的东西。但似乎在您将 Unity 引入组合的那一刻,您还必须引入 Web 请求生命周期管理器。这是为什么?为什么像 Nerddinner 这样的示例应用程序没有 Web 请求生命周期管理器?它究竟是做什么的?它是 Unity 特有的吗?

我注意到的第二种模式是引入工作单元。同样的问题:为什么 Nerddinner 或 ContactManager 不使用工作单元?相反,这些应用程序使用 Linq2Sql 或实体框架之上的存储库类来执行数据操作。没有任何工作单元的迹象。它到底是什么,为什么要使用它?

谢谢

下面是 Nerddiner 在 DinnersController 级别的 DI 示例:

那么我是否正确地假设由于第一个构造函数控制器“拥有”DinnerRepository,因此它将取决于控制器的生命周期,因为它在那里被声明?

0 投票
2 回答
6158 浏览

c# - unity(依赖注入):RegisterType中如何给构造函数传入参数

任何人都可以帮忙吗?

我有一个 wpf 应用程序(应该没关系),在 Onstart 中我有我的引导程序的东西.. 就像这样..

基本上 ISecurityService 期望我传入一个 ISecurityRepository,因此上述失败。

但我有点困惑,我是否必须创建一个新的 IsecurityRespository 然后将其传入,这会破坏对象不是吗?

无论如何我说“将容器中的 ISecurityRepository 传递给 SecurityService”,但它还没有构建吗?

有任何想法吗?

0 投票
1 回答
5133 浏览

c# - Ninject 2.0 构造函数参数 - 当默认构造函数也存在时如何设置?

我是 IOC 容器和学习 Ninject 的新手。我使用的是从 Github 新下载的 2.0 版。

当还存在默认构造函数时,我正在尝试在构造函数上设置字符串参数。我一直在逐步浏览 Ninject 源代码,但我对用于轻松查明我遗漏的内容的模式不够熟悉。

这是我的测试控制台应用程序:

代码将“错误消息:(”打印到控制台。如果我删除 TestClass 中的默认构造函数,我会得到“Hello World!”。我在这里缺少什么?

澄清一下:我希望班级打印“Hello World!” 到带有默认构造函数的控制台。

0 投票
5 回答
14588 浏览

java - 如何修改spring容器中定义的bean

我有两个为 springframework(版本 2.5.x)定义 bean 的 xml 文件:

... 和

现在我想调整sourceCodeLocationsbeancodebase内的属性containerSpecial.xml。我需要添加第二个值src/generated/productive

一种简单的方法是覆盖codebasein的定义containerSpecial.xml并添加两个值,即 fromcontainerBase.xml和 new 值:

有没有办法在不重新定义 bean 的情况下扩展列表?

编辑 2009-10-06:

这样做的目的是拥有一个containerBase被许多不同项目使用的共享标准容器。每个项目都可以在自己的containerSpecial. 如果项目没有覆盖,它会使用containerBase.

0 投票
1 回答
1688 浏览

interface - 抽象类是否像接口一样与 StructureMap 一起使用?

我是 StructureMap 的忠实粉丝,几乎在我所做的所有事情中都会用到它。不过,我只将它与接口一起使用过。我想知道是否有人有使用抽象类的经验?或者......它不支持那种类型的接线?如果你让这个工作,你可以发布一个例子吗?

谢谢!

0 投票
2 回答
108 浏览

.net - 我应该升级到温莎城堡 v2 吗?

我们正在评估将 Castle Windsor Container 升级到今年 5 月发布的版本 2。到这个时候,我希望社区对新版本有一些经验......

我主要担心的是:

  • 升级到 v.2 是否值得?(任何重要的重要新功能或错误修复?)
  • 迁移是顺利还是有一些陷阱和不向后兼容的东西?
  • 有没有性能提升?

干杯,雅各布

0 投票
2 回答
1065 浏览

asp.net-mvc - ASP.NET MVC 中的 IModelBinder 或 IOC?

而 Scott Hanselman 在“<a href="http://www.hanselman.com/blog/IPrincipalUserModelBinderInASPNETMVCForEasierTesting.aspx" rel="nofollow noreferrer">IPrincipal (User) ModelBinder in ASP 中对 IModelBinder 的使用进行了出色的演示。 NET MVC 以便于测试”,他觉得有必要做出这个相当防御性的评论:

是的,我意识到我也可以为此使用 IoC 容器。

他是说他可以使用 IOC而不是IModelBinder 还是说我们应该将 IModelBinderIOC 一起使用?了解可以用通用编程语言完成很多很多事情(现在我开始采取防御措施了)在现实世界场景中实际做了什么?例如,像KiGG这样的项目似乎根本没有使用 IModelBinder。

0 投票
2 回答
3217 浏览

dependency-injection - 运行时指定的具有开放泛型和类型的 Autofac

文档指出 Autofac 支持开放泛型,我可以在基本情况下注册和解析,如下所示:

登记:

解决:

上面的代码工作得很好。但是,假设我直到运行时才知道提供给 IFlatener 的类型,我想做这样的事情:

AutoFac 可以做到这一点吗?我使用 StructureMap 从以下内容中得到了这个想法:

http://structuremap.sourceforge.net/Generics.htm

我正在努力实现本文中概述的相同目标。

0 投票
3 回答
3170 浏览

c# - Unity 和 WCF 库:在 wcf 库中的何处加载统一?

谁能帮忙?

我创建了一个 WCF 库(不是应用程序),我将在 SVC IIS 页面中托管它。

但我想在通用位置加载统一的东西......我可以将它加载到 global.asax 但然后它绑定到 IIS Asp.net 容器并且在执行 TDD 时这部分不会执行所以不是我的解决方案会工作。

WCF 库是一个纯类,所以我怀疑我可以使用 OnStartup 等任何事件吗?

我想到的唯一方法是让服务从基类继承以及调用某种静态类并为统一进行引导的接口。

我有点迷茫,这是唯一的方法还是有一些我不知道的方法。

基本上这个想法是......谁曾经调用过 wcf 库,那么统一注入需要发生......

有任何想法吗?

谢谢