问题标签 [unity-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 投票
4 回答
5493 浏览

inversion-of-control - Unity 框架对控制反转有用吗?

我使用IoC已经有一段时间了,我很好奇是否应该使用微软的Unity框架(正式名称“Unity Application Block”)。有没有人有使用它的经验?所以我一直在将我的 IoC 容器代码从一个项目复制到另一个项目,但我认为使用标准的东西会更好。我认为 IoC 可以在保持基于组件的应用程序松散耦合方面产生巨大的差异,因此可以改变,但我绝不是 IoC 方面的专家,所以我很紧张切换到一个框架,它只会把我描绘成一个依赖我的角落终有一天会想要走开。

0 投票
1 回答
933 浏览

.net - 有什么方法可以添加一些默认程序集来解析 Unity / ObjectBuilder 中的类型?

我正在使用 MS Unity IoC 框架进行我的第一个项目。

如果我的统一配置中有这个:

然后我得到错误:

无法从程序集“Microsoft.Practices.Unity.Configuration,Version=1.1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”加载类型“PFServer.DataAccess.TestDataAccess”。

但是,如果我将程序集名称添加到类型定义中:

然后它工作正常。有没有办法添加一些默认的程序集来加载类型?在这种情况下,奇怪的是“PFServer.dll”是包含所有这些配置的程序集。我觉得奇怪的是当前程序集不在解析对象的路径中......或者我只是做错了什么?

0 投票
4 回答
16218 浏览

.net - MEF 是依赖注入框架吗?

最近宣布的 .NET 4.0 的托管可扩展性框架 (MEF) - 它是一个依赖注入框架吗?来自 Patterns and Practices 的 Microsoft Unity 在 4.0 中会过时吗?MEF 与 Unity 等框架相比如何?

0 投票
1 回答
1888 浏览

c# - Unity Application Block,继承注入

我在使用 Unity 应用程序块时遇到问题,我创建了一个名为 Composition 的基类。

每个组合都包含一个 IUnityContainer,当我创建顶级对象 UniversalComposition 时,我想用一个 UnityContainer 对其进行初始化。

从 UniversalComposition 创建的任何对象我想使用 IUnityContainer.CreateChildContainer 方法将子 IUnityContainer 注入其中。

0 投票
3 回答
2107 浏览

.net - Unity中的“列表注入”?

我有一个项目即将推出,该项目将涉及通过相同的接口连接到一对多的后端系统;我们称它为 IBacksideProvider。

我想使用 Unity 在运行时注入这些提供程序。问题是因为我们谈论的是 1...n 个后端系统,所以我需要注册 1...n 个 IBacksideProvider 的实现。Unity 不支持开箱即用。

然而,这篇博文表明这是可以做到的。我想知道是否有人这样做过或知道如何使用 Unity 以便能够做到这一点。TIA。

0 投票
1 回答
2780 浏览

c# - unityContainer,子容器注入

我对 Unity 应用程序块很陌生,并且在尝试实现以下内容时有点卡住。我有一个父子容器。当我解析子容器的新实例时,我想使用 CreateChildContainer 方法将新的 UnityContainer 注入到构造函数中。

0 投票
3 回答
2774 浏览

inversion-of-control - 泛型类型依赖注入:如何注入 T

我想在我的应用程序中以相同的方式处理不同类型的文档因此:我有一个像这样的通用接口。

对于不同类型的文档,我实现了这个接口。

例如:

然后我当然可以做这样的事情:

知道如何在运行时注入 T 以使上面的行松散耦合会很有趣...

但我想根据配置决定我想要我的 FinanceDomcumentProcessor 还是我的 MarketingDocumentProcessor ......因此我也必须在左侧站点上注入 T ......因为我必须使用 c# 2.0 我不能使用魔法词“var”在这种情况下会有很大帮助......但是我怎样才能将它设计为开放和灵活......


很抱歉造成误解并感谢所有评论,但我有另一个挑战示例(也许我为此使用了错误的设计)......但我试一试:同样的情况但不同的解释

我有的示例图像:

ReportingService、Crystal、ListAndLabel 三种不同的报告文档类型。我有一个通用的处理IReportHandler<T>程序(与上面的相同),这个处理程序提供了处理报告文档的所有功能。例如

现在我想使用像 Unity(或其他一些框架)这样的框架进行依赖注入,以通过配置决定我是要使用 CrystalReportingservices还是 List 和 Label。

当我指定我的映射时,我可以注入我的ChrystalReportHandler,但我怎样才能在左侧注入 T 或者更好的词 The Type of ReportDocument

我的问题当然是左侧站点,因为它与类型耦合,但我有我的映射...是否可以基于映射生成对象并分配映射类型?或者基本上也将 T 注入左侧?还是这种方法不适合这种情况。

0 投票
4 回答
6999 浏览

c# - 在运行时从 UnityContainer 中删除已注册的类型?

我想知道是否有一种简单的方法可以从统一容器中删除已经注册的类型,或者至少用另一个替换现有的接口/类型映射。仅将另一种类类型映射到接口并覆盖旧的类就足够了吗?


这不应该经常发生。实际上几乎没有时间,但在某些情况下,我想用另一个实现某个接口的服务替换另一个服务,而不会干扰其他部分。

0 投票
2 回答
1945 浏览

configuration - Unity IOC 配置

我有一堂课

我想使用 Unity XML 配置进行配置,我可以使用 C# 中的代码对其进行配置,如下所示,其中“容器”是我的 Unity 容器

它会很高兴使用正常的统一调用来解决

container.Resolve("myBroker");

但是目前我的 xml 无法解析最终参数 IMyBrokeredObject,我得到一个解析异常,因为 Unity 正试图解析类型,只需注入类型,就像在上面的代码中那样。

有任何想法吗?

0 投票
5 回答
3131 浏览

c# - Castle Windsor to Unity - 你能像在 CW 中一样在 Unity 中自动配置吗?

我不知道这是否是一个太具体的问题,如果可能的话,但我必须将使用 Castle Windsor 的应用程序移植到 Unity,这样就不会依赖非微软批准的库。我知道我知道,但你要做什么。

无论如何,我已经做到了,但我对我所拥有的并不满意。在温莎我有这个:

我已经统一转换为这个

如您所见,我必须注册每一件事,而不是能够使用某种自动配置。所以我的问题是:有没有更好的统一方式来做到这一点?

谢谢,

亚当。