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

asp.net - Autofac 中 HttpRequestScoped 的解决问题

我正在尝试解决我的应用程序中的 AccountController,但似乎我有一个终身范围问题。

我需要将 MyDataContext 和 UnitOfWork 限定在 HttpRequestLevel 范围内。当我尝试解析 AccountController 时,出现以下错误:

从请求实例的范围中看不到与表达式 'value(Autofac.Builder.RegistrationBuilder`3+<>c__DisplayClass0[...]).lifetimeScopeTag.Equals(scope.Tag)' 匹配的范围。

我的依赖生命周期设置不正确吗?

0 投票
3 回答
1754 浏览

c# - 重新注入新反序列化对象的依赖项

如果一个程序实际上只是反序列化了一个对象(实际上并不重要,只是说使用了 BinaryFormatter)。

用于重新注入此对象的依赖项的好的设计是什么?

这有一个共同的模式吗?

我想我需要将 Deserialize() 方法包装起来以充当容器内的工厂。

谢谢!

0 投票
2 回答
1502 浏览

asp.net-mvc-2 - 两个不同区域同名的不同控制器导致路由冲突

我有两个领域:

ControlPanelPatients

两者都有一个名为 ProblemsController 的控制器,仅在名称上相似。期望的结果将是产生 /controlpanel/problems => MyApp.Areas.ControlPanel.Controllers.ProblemsController 和 /patients/problems => MyApp.Areas.Patients.Controllers.ProblemsController 的路由。

每个都有这样配置的路由:

其中 ***** 此处的区域名称 ***** 是 ControlPanel 或患者。

当我去 /patients/problems/create (例如),我得到一个 404 路由错误说:A public action method 'create' was not found on controller 'MyApp.Areas.ControlPanel.Controllers.ProblemsController'

我不确定我做错了什么。

0 投票
3 回答
942 浏览

asp.net-mvc - 使用 HttpRequestScoped 的 Autofac 2 和 MVC2 问题

我遇到了 Autofac2 和 MVC2 的问题。问题是我正在尝试解决根依赖项是 HttpRequestScoped 的一系列依赖项。当我尝试解析我的 UnitOfWork(可处置)时,Autofac 失败,因为内部处置器试图将 UnitOfWork 对象添加到为空的内部处置列表中。也许我正在使用错误的生命周期注册我的依赖项,但我尝试了许多不同的组合但没有运气。我唯一的要求是 MyDataContext 持续整个 HttpRequest。

我已在此处发布了代码的演示版本以供下载

Autofac 模块在 web.config 中设置

全球.asax.cs

AutofacDependencyResolver.cs

IoCHelper.cs

UnitOfWork.cs

MyDataContext.cs

我的服务.cs

家庭控制器.cs

0 投票
1 回答
21914 浏览

.net - 解析实例 - Autofac

我试图弄清楚如何在代码中的某个地方解析一个实例。

在应用程序启动时,我注册了一个类型

现在,我怎样才能在代码中的某个地方解析一个实例?

在 StructureMAP 中有一个静态对象ObjectFactory.GetInstance<IFoo>()

0 投票
1 回答
2580 浏览

ioc-container - 使用 AutoFac 2 避免服务定位器

我正在构建一个使用 AutoFac 2 进行 DI 的应用程序。我一直在阅读应该避免使用静态 IoCHelper(服务定位器)。

IoCHelper.cs

从对上一个问题的回答中,我找到了一种通过使用自动生成的工厂来帮助减少在我的 UnitOfWork 中使用 IoCHelper 的方法。继续走这条路,我很好奇我是否可以完全消除我的 IoCHelper。

这是场景:

我有一个静态 Settings 类,用作我的配置实现的包装器。由于 Settings 类依赖于我的大多数其他类,因此包装器使我不必在整个应用程序中注入设置类。

设置.cs

有没有办法在不使用服务定位器的情况下处理这个问题,也不必求助于将 AppSettings 注入每个类?下面列出了我一直依赖 ServiceLocator 而不是构造函数注入的 3 个领域:

  • 应用设置
  • 日志记录
  • 缓存
0 投票
1 回答
3981 浏览

c# - 使用 Autofac 2 和命名注册的构造函数注入

我目前正在尝试在我们的代码中删除一些 .Resolve(s)。在遇到命名注册之前,我一直进展顺利,但我无法使用该名称获得 Autofac 解析。我缺少将命名注册注入构造函数的内容。

登记

当前班级

想拥有

0 投票
1 回答
416 浏览

asp.net-mvc - 在带有区域的 ASP.NET MVC2 应用程序中使用 AutoFac 注册控制器

有没有人能够让 AutofacControllerFactory 在控制器被分成区域的应用程序中工作?

看起来在当前版本中不支持开箱即用。

谢谢

0 投票
1 回答
1885 浏览

c# - 使用 TypeMock 模拟 Autofac 的“Resolve”扩展方法

我正在尝试模拟 Autofac 解析,例如

来自 Moq,TypeMock 的语法和异常让我很困惑。最初在 TestMethod 中运行它后,我不断收到类似于“WhenCalled 不能在没有补充行为的情况下运行”的异常。我尝试为每个人和他们的母亲定义行为,但无济于事。

然后我调试了测试运行,看到 Autofac 触发了一个实际的异常:IRubber 尚未注册。

所以很明显,静态 Resolve 函数没有被伪造,而且我无法让它被伪造,无论我如何连接它。

...从 Autofac 引发异常,抱怨 IComponentContext 不能为空。给它提供可能是伪造的 IContainer (或伪造 IComponentContext )让我回到“IRubber 未注册”错误。

0 投票
4 回答
3407 浏览

java - Java/Scala 的简单控制反转框架

我正在为用 Java/Scala 编写的 GUI 应用程序寻找一个简单易用的 IoC 容器。

它应该支持约定优于配置、生命周期管理、代码中的配置(最好根本不需要任何 XML)以及尽可能在编译时检查依赖关系。类似于Autofac的东西将是完美的。