问题标签 [autofac]

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 回答
2050 浏览

autofac - Autofac 会话范围

我正在调查我们的 Web 应用程序中 Autofac 的使用,过去曾使用过 Castle Windsor。

我真正喜欢 Autofac 的一点是能够通过 lamda 表达式表达动态组件构造,而不是在 Windsor 中创建 DependancyResolvers 等。

我遇到的一种情况是我希望在 ASP.NET 会话级别范围内注册特定组件。使用 Windsor 我会创建/获取一个新的 LifestyleManager,但是使用 Autofac 我想出了这个:

在某些时候我可能会变成一种扩展方法。如果 HttpContext.Current.Session 为空,我接受这个实现会爆炸,因为它应该只在网络应用程序中使用。

问题是:

在 Autofac 中进行此类注册的最佳做法是什么。我看到很多关于使用嵌套容器等的提及,但没有具体的例子,我很想了解上述方法可能有什么问题(我唯一能想到的就是自动处理的东西)。

谢谢。

0 投票
2 回答
34181 浏览

c# - Autofac:解析类型的所有实例

鉴于以下注册

我希望将 I 类型的所有实例解析为IEnumerable(数组或集合无关紧要)。

在温莎,我会写以下内容。

我正在从 Windsor 迁移到 Autofac 1.4.4.561,但看不到等效语法。

0 投票
2 回答
1236 浏览

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

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

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

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

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

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

0 投票
2 回答
3217 浏览

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

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

登记:

解决:

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

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

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

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

0 投票
1 回答
555 浏览

autofac - Autofac 组件注册/解析错误?

我似乎有一个问题——相当出乎意料;所以我想我可能在做一些愚蠢/错误的事情。

我这样注册了两个容器范围的服务:

现在当我尝试解决

我得到了同样的例子。我希望第一次调用返回第一个实例,第二次调用返回第二个实例。为什么会这样?

我希望这里有一些活跃的 Autofac 专家,如果能帮助我快速解决这个问题,我将不胜感激。

谢谢大家!

0 投票
1 回答
896 浏览

inversion-of-control - 管理 autofac 容器设置

我的一位团队成员决定在我们的一项服务上使用 autofac,因为我们想尝试一下,所以我们坚持使用它。

现在已经过去了一段时间,容器设置方法已经增长!它太大了,以至于我们遇到了问题。

拆分它并没有带来我们想要的结果。也许我们只是用错了。

所以我的问题是:我们如何管理容器设置?我们可以转储到 XML 中还是有任何其他最佳实践?

0 投票
2 回答
3483 浏览

inversion-of-control - AutoFac 自动装配约定

StructureMap 能够在扫描时应用约定。因此 IFoo => Foo,没有显式注册。

AutoFac 中是否有类似的功能?环顾四周,找不到任何有用的东西。

谢谢,

0 投票
3 回答
2733 浏览

asp.net-mvc - NHibernate 与 ASP.NET (MVC) 中的 Autofac:ITransaction

在 Web 应用程序中使用 Autofac 管理 NHibernate 事务的最佳方法是什么?

我的会话方法是

对于ITransaction,我在 Google Code 上找到了一个示例,但它依赖于HttpContext.Current.Error决定是否回滚。

有更好的解决方案吗?NHibernate 事务应该有什么范围?

0 投票
1 回答
653 浏览

asp.net-mvc - 对自定义 ViewPage 的依赖注入会产生奇怪的错误

我正在尝试将东西注入自定义 ViewPage(ModelViewPage,来自 MvcContrib)

我的 Autofac 注册看起来像这样:

但是当我尝试访问视图时出现此错误:

我一无所知,但后来我查看了 App_Web_edit.aspx.b2d4184a.thgwih90.0.cs 并发现了这个:

当然,生成的类views_skadeanmälan_edit_aspx 继承自我的UKFS.Web.Views.ValidatedModelViewPage,当它尝试使用默认构造对其进行实例化时.. 你能解决它吗?

0 投票
1 回答
5666 浏览

c# - 如何实现委托工厂?

Autofac的文档有一个有趣的页面,描述了它自动生成委托工厂的能力。它还强烈建议您可以在不使用 Autofac 的情况下通过手工编写来获得类似的结果。

我正在为 IoC 使用 Unity,并且希望避免将容器传递给需要创建其他对象的对象,那么如果没有 Autofac,您将如何编写委托工厂?