问题标签 [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.
.net - 我应该使用哪个依赖注入工具?
我正在考虑在我们的用户界面中将 Microsoft Unity 用于我的依赖注入工具。
我们的中间层已经在使用 Castle Windsor,但我认为我应该坚持使用 Microsoft。
有人对最好的依赖注入工具有什么想法吗?
- 自动法
- 城堡微内核/温莎
- PicoContainer.NET
- 拼图.NFactory
- 春天.NET
- 结构图
- 忍者
- 统一
- 简单的喷油器
- NauckIT.微内核
- WINTER4NET
- 对象构建器
c# - 如何注入不断变化的依赖项
我是依赖注入的新手,我想知道您将如何处理以下情况。我们有如下内容:
对于 Web 应用程序,每个请求都可以构建不同的 DatabaseContext 以指向不同的数据库。对于 windows 窗体,我们可以更改当前的 DatabaseContext。di 框架如何处理可以更改的依赖项?这样当我请求 IDataAccess 时,它总是具有适当的/当前的 DatabaseContext。
castle-windsor - IoC 容器适用性/场景演示?
.NET 领域的很多人都选择了 Castle Windsor 并在他们的项目中实现它,在过去的一年里,我一直在努力弄清楚为什么 IoC 容器似乎被视为一般的“最佳实践”?我已经阅读了很多关于温莎之类的原因的摘要和简要解释,但每一个都确实是抽象的,对于我接触过的大多数项目来说似乎并不实用,但最近我一直遇到很多使用温莎的项目,我不明白为什么。
C#/.NET 固有地支持基于接口的编码、抽象对象、委托和事件。可以直接从核心语言实现 IoC,并使用反射等实例化实现已知接口的未知实例,而无需求助于 IoC 容器库。
在应用 YAGNI/AYGNI(你会需要它吗?)时,我觉得温莎被过度使用了。我当然可以看到 IoC 容器的好处,但我觉得这些好处是以额外的依赖项和元数据为代价的(在核心代码中调用的 IoC 容器特定属性和方法、分散在各处的 .config 文件、app.config/web.config填充了绑定标签,使 .config 文件更难编辑等),所以我试图找出权衡。
也就是说,我接受了我在无知上做出所有这些观察/陈述的可能性,因为我从未大量参与过使用 Windsor 或其他 IoC 容器库的项目。我真正需要的是让某人演示一个使用 IoC 容器库的“平均”或“典型”项目,以及为什么这应该是“最佳实践”,而在我看来,这会让原本干净的项目变得混乱具有依赖项和元数据。
如果有人知道任何可以填满我的博客文章、文章或书籍,那就太好了。
(我不是为了争论而争论,而是因为我真的很想接受关于我是否应该在 IoC 容器方面进行自我教育的教育)。
.net - .NET - 您会向该领域的初学者推荐什么 IoC 容器框架?
您会向该领域的初学者推荐什么 Inversion of Control Container 框架?
dependency-injection - 使用 IOC 框架绑定到多个具体实现?
我对 DI/IOC 容器的概念相对熟悉,我曾在之前已经使用它们的项目上工作过。然而,对于这个新项目,没有现有的框架,我不得不选择一个。
长话短说,在某些场景中,我们将为给定接口配置多个实现。环顾网络,似乎使用任何主流框架来选择性地绑定到其中一个实现都非常简单。
然而,在某些情况下,我们需要运行所有配置的实现。我已经在这里搜索了所有 IOC 标记的帖子,我正在尝试翻阅主要框架的文档(到目前为止,查看 Unity、Ninject 和 Windsor),但是文档通常很少,我没有时间检查所有软件包的来源。
那么,是否有任何主流 IOC 容器允许我为我的一项服务绑定到所有已配置的具体类型?
c# - 如何处理 StructureMap 的 ObjectFactory 中的每个实例对象?
我在我的项目中使用 StructureMap,当应用程序完成运行时,我需要在 ObjectFactory 中实现 IDisposable 的所有 Singleton 实例上调用 Dispose() 方法。
我无论如何都找不到通过 StructureMap API 来做这件事。
我的另一个想法是获取每个实例的引用并自己调用它,但我不知道如何循环遍历所有实例。
c# - 编写自己的 IOC 容器
有没有人用 C# 编写过自己的 IOC 容器?还是绝大多数人都使用各种框架,例如 Spring。各自的优缺点是什么?
.net - 我可以使用 .NET 创建 IOC 控件以放置在 Web 项目中吗?
我目前有一个用户控件库,我在我们的许多 Web 应用程序中使用它。我想更新这些控件,以便我可以使用 IOC 来帮助分离逻辑。
所以我会在网页本身上有类似于以下内容的内容:
并且该控件将具有类似于以下内容的构造函数:
然后理想情况下,IOC 容器将处理注入。这可以做到吗?如果是这样,哪些图书馆提供这个?如果您有任何您知道的讨论这个的链接,他们将非常感谢。
提前致谢
c# - Castle Windsor - 一个实现多个接口的类
我在应用程序启动时注册了我的两个接口:-
然后,当我尝试在此处使用第二个接口(ISnippetController)的对象上运行 IoC.Resolve 时,它会引发以下异常:-
无法创建组件“MyApp.Admin.Presenters.SnippetPresenter”,因为它需要满足依赖关系。MyApp.Admin.Presenters.SnippetPresenter 正在等待以下依赖项: 服务:-未注册的 MyApp.Admin.Controllers.ISnippetController。
如果我切换注册的顺序,它会抱怨它找不到 IEntityIndexController。因此,它似乎只获取一个类的第一个注册,然后忽略映射到同一个具体类的任何其他接口。
这里有什么明显的我想念的吗?(ps即时使用.net 3.5,温莎RC3)
unit-testing - 单元测试 IoC 注册?
您是否应该对将组件注册到 IoC 容器中的代码进行单元测试?
如果是这样,怎么做?