问题标签 [autofac-configuration]

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

c# - 使用 autofac 解析在运行时在构造函数中接受参数的类实例

我正在按照下面的示例使用 autofac 在运行时创建一个类实例。 http://autofaccn.readthedocs.io/en/latest/advanced/delegate-factories.html

但是在本地运行时,我看到了一个异常。我对 autofac 很陌生,如果我在这里做错了什么或者您需要更多信息,请告诉我。

代码结构:

异常堆栈跟踪:

0 投票
1 回答
419 浏览

c# - 将类型注册为带有异常的 InstancePerRequest

我在我的 Web API 应用程序中使用AutoFac (使用发布此问题时可用的最新版本)。我的服务依赖项之一是AuditService使用按DbContext类型的实例(我们现在称之为MyDbContext)。我的大部分服务和MyDbContext类型都是使用InstancePerRequest注册的。对于我来说AuditService,我想破例,我总是想注入一个拥有的(的)我的MyDbContext.

问题:使用AutoFac注册,我如何注册我AuditService的,以便它总是获得一个拥有的(新的)实例MyDbContext


什么可以工作:

  • MyDbContext我可以在构造函数中硬编码创建,AuditService从而一起绕过 AutoFac。
  • 我可以使用PropertyInjection 或 MethodInjectionMyDbContext并在 Life Time 事件OnActivating中提供一个新实例
  • 我可以定义第二个接口MyDbContext并提供第二个注册和使用InstancePerOwned

我是否必须选择上述选项之一(如果是这样,我会倾向于 3)还是我错过了一些简单的东西?有没有办法在我的注册码中定义我想要的内容?



使用 InstancePerOwned 的解决方案尝试

这会导致异常

Autofac.Core.DependencyResolutionException:“从请求实例的范围内看不到带有匹配'AuditService'标签的范围。如果您在执行Web应用程序期间看到这一点,通常表明组件注册为per-HTTP请求由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从依赖解析器或请求生命周期范围请求依赖,而不是从容器本身。


我尝试颠倒InstancePerOwnedandInstancePerRequest调用的顺序,但这似乎没有效果,同一个MyDbContext实例被重复用于同一个请求中的BusinessServiceandAuditService实例。这是用object.ReferenceEqualsfrom in an测试的,ApiController并在两个实例的_dbContext字段中传递。

0 投票
1 回答
134 浏览

dependency-injection - 是否可以将 InstancePerRequest 设置为 Autofac 的默认实例范围选项?

InstancePerDependency如果未指定其他选项,则Autofac作为默认值。是否可以将InstancePerRequestAutofac 设置为默认实例范围选项?

0 投票
2 回答
3187 浏览

.net-core - .NET Core 控制台应用程序 services.AddAutofac() 不工作

我正在尝试使用Microsoft.Extensions.DependencyInjectionandAutofac.Extensions.DependencyInjection包将 Autofac 与 .NET Core 控制台应用程序一起使用,但我的模块中的加载方法永远不会被调用,并导致Program在解析期间为空。我希望它们在我调用AddAutofac()扩展方法或构建服务提供者时加载。

0 投票
2 回答
1301 浏览

asp.net-mvc - Autofac、Autofac.MVC、Autofac.Integration.Mvc dll 有什么区别

在我的 MVC Web 应用程序中,我收到以下错误:

无法创建请求生命周期范围,因为 HttpContext 不可用

当我用谷歌搜索时,我发现一个解决方案是升级我的autofac.Mvc dll,但我只使用autofac dllAutofac.Integration.Mvc dll等等,我找不到任何 dll,autofac.MVC 我是否缺少任何 dll?

Autofac, Autofac.MVC, Autofac.Integration.Mvcdll有什么区别?

0 投票
1 回答
1438 浏览

c# - 使用 Autofac 注入 JSON 文件

我需要使用 Autofac (IoC) 加载 JSON 文件,并且我正在关注官方教程:http ://autofaccn.readthedocs.io/en/latest/configuration/xml.html#quick-start

所有代码都正确,但无法识别 ConfigurationModule 类:

0 投票
0 回答
53 浏览

autofac - 此 ninject 命令/函数的 AutoFac 等效项

在 Ninject 中,我可以配置如下所述的容器, “突出显示的”的 Autofac 等价物是什么?

目前我正在尝试使用 AutoFac 来实现相同的目标,非常感谢任何帮助。

0 投票
2 回答
358 浏览

c# - bot框架内的json文件中的autofac配置

我正在使用一个 autofac json 文件,其中列出了我的所有依赖项。以下是 json 文件供参考。

我的 RootDialog 类如下:

在 MessageController.cs 中,解决依赖关系如下:

问题是,何时通过 Global.asax 中的以下代码注册模块:

它给出的错误与类型 DigitalAssistant.Dialogs.RootDialog 不可分配给服务 Microsoft.Bot.Builder.Dialogs.IDialog 一样。

我在这里缺少什么,请帮忙。

0 投票
1 回答
253 浏览

c# - 在 Autofac 中设置默认的 ConstructorSelector

Autofac 有一个很好的选项来设置构造函数解析策略。

例如通过使用MostParametersConstructorSelector

有没有设置默认值的选项ConstructorSelector

我试过了:

在 Autofac 的文档或源代码中找不到它

0 投票
1 回答
72 浏览

c# - Bot Framework AutoFac 依赖问题 C#(多容器)

在我的应用程序启动中,我有以下代码来注册我的模块。

我正在使用具有以下代码的 InstrumentedLUIS。

由于上面的代码,我的模块寄存器丢失了,并且每次后续调用 bot 时,请求的服务都没有注册,请使用可选的。

由于我不知道最新的Autofac,任何人都可以指导我吗?