问题标签 [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.
c# - 使用 autofac 解析在运行时在构造函数中接受参数的类实例
我正在按照下面的示例使用 autofac 在运行时创建一个类实例。 http://autofaccn.readthedocs.io/en/latest/advanced/delegate-factories.html
但是在本地运行时,我看到了一个异常。我对 autofac 很陌生,如果我在这里做错了什么或者您需要更多信息,请告诉我。
代码结构:
异常堆栈跟踪:
c# - 将类型注册为带有异常的 InstancePerRequest
我在我的 Web API 应用程序中使用AutoFac (使用发布此问题时可用的最新版本)。我的服务依赖项之一是AuditService
使用按DbContext
类型的实例(我们现在称之为MyDbContext
)。我的大部分服务和MyDbContext
类型都是使用InstancePerRequest注册的。对于我来说AuditService
,我想破例,我总是想注入一个拥有的(新的)我的MyDbContext
.
问题:使用AutoFac注册,我如何注册我AuditService
的,以便它总是获得一个拥有的(新的)实例MyDbContext
?
什么可以工作:
MyDbContext
我可以在构造函数中硬编码创建,AuditService
从而一起绕过 AutoFac。- 我可以使用PropertyInjection 或 MethodInjection
MyDbContext
并在 Life Time 事件OnActivating中提供一个新实例 - 我可以定义第二个接口
MyDbContext
并提供第二个注册和使用InstancePerOwned
。
我是否必须选择上述选项之一(如果是这样,我会倾向于 3)还是我错过了一些简单的东西?有没有办法在我的注册码中定义我想要的内容?
使用 InstancePerOwned 的解决方案尝试
这会导致异常
Autofac.Core.DependencyResolutionException:“从请求实例的范围内看不到带有匹配'AuditService'标签的范围。如果您在执行Web应用程序期间看到这一点,通常表明组件注册为per-HTTP请求由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从依赖解析器或请求生命周期范围请求依赖,而不是从容器本身。
我尝试颠倒InstancePerOwned
andInstancePerRequest
调用的顺序,但这似乎没有效果,同一个MyDbContext
实例被重复用于同一个请求中的BusinessService
andAuditService
实例。这是用object.ReferenceEquals
from in an测试的,ApiController
并在两个实例的_dbContext
字段中传递。
dependency-injection - 是否可以将 InstancePerRequest 设置为 Autofac 的默认实例范围选项?
InstancePerDependency
如果未指定其他选项,则Autofac作为默认值。是否可以将InstancePerRequest
Autofac 设置为默认实例范围选项?
.net-core - .NET Core 控制台应用程序 services.AddAutofac() 不工作
我正在尝试使用Microsoft.Extensions.DependencyInjection
andAutofac.Extensions.DependencyInjection
包将 Autofac 与 .NET Core 控制台应用程序一起使用,但我的模块中的加载方法永远不会被调用,并导致Program
在解析期间为空。我希望它们在我调用AddAutofac()
扩展方法或构建服务提供者时加载。
asp.net-mvc - Autofac、Autofac.MVC、Autofac.Integration.Mvc dll 有什么区别
在我的 MVC Web 应用程序中,我收到以下错误:
无法创建请求生命周期范围,因为 HttpContext 不可用
当我用谷歌搜索时,我发现一个解决方案是升级我的autofac.Mvc dll
,但我只使用autofac dll
,Autofac.Integration.Mvc dll
等等,我找不到任何 dll,autofac.MVC
我是否缺少任何 dll?
Autofac
, Autofac.MVC
, Autofac.Integration.Mvc
dll有什么区别?
c# - 使用 Autofac 注入 JSON 文件
我需要使用 Autofac (IoC) 加载 JSON 文件,并且我正在关注官方教程:http ://autofaccn.readthedocs.io/en/latest/configuration/xml.html#quick-start
所有代码都正确,但无法识别 ConfigurationModule 类:
autofac - 此 ninject 命令/函数的 AutoFac 等效项
在 Ninject 中,我可以配置如下所述的容器, “突出显示的”的 Autofac 等价物是什么?
目前我正在尝试使用 AutoFac 来实现相同的目标,非常感谢任何帮助。
c# - bot框架内的json文件中的autofac配置
我正在使用一个 autofac json 文件,其中列出了我的所有依赖项。以下是 json 文件供参考。
我的 RootDialog 类如下:
在 MessageController.cs 中,解决依赖关系如下:
问题是,何时通过 Global.asax 中的以下代码注册模块:
它给出的错误与类型 DigitalAssistant.Dialogs.RootDialog 不可分配给服务 Microsoft.Bot.Builder.Dialogs.IDialog 一样。
我在这里缺少什么,请帮忙。
c# - 在 Autofac 中设置默认的 ConstructorSelector
Autofac 有一个很好的选项来设置构造函数解析策略。
例如通过使用MostParametersConstructorSelector
:
有没有设置默认值的选项ConstructorSelector
?
我试过了:
在 Autofac 的文档或源代码中找不到它
c# - Bot Framework AutoFac 依赖问题 C#(多容器)
在我的应用程序启动中,我有以下代码来注册我的模块。
我正在使用具有以下代码的 InstrumentedLUIS。
由于上面的代码,我的模块寄存器丢失了,并且每次后续调用 bot 时,请求的服务都没有注册,请使用可选的。
由于我不知道最新的Autofac,任何人都可以指导我吗?