问题标签 [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 注册具体类时收到以下错误
这是课
这就是我使用 autofac 进行注册的方式
将上述类称为
PageCachingJob 类 -
BaseJob 类
界面 -
ICachingService 接口
缓存服务类
获取以下异常
在“PacDig.Atlantic.Schedule.Jobs.NoRetryJob`1[PacDig.Atlantic.Schedule.Jobs.PageCachingJob]”类型上使用“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”找到的任何构造函数都不能使用可用服务调用和参数:无法解析构造函数“Void .ctor(PacDig.Atlantic.Schedule.Jobs.PageCachingJob)”的参数“PacDig.Atlantic.Schedule.Jobs.PageCachingJob 作业”。
提前致谢
autofac - Autofac的JSON配置中同一个接口的两种实现
我需要在应用程序中启用后期绑定,并且我希望有一个选项来使用 JSON 配置文件显式配置服务。
我有一个接口IDependency
和两个类DependencyOne
,DependencyTwo
它们都实现了接口。我还有一个SomeService
具有以下签名的构造函数的类:
我想注入DependencyOne
fordependency1
和DependencyTwo
for dependency2
。
如何在不使用代码中的任何属性的情况下纯粹在 JSON 配置中进行配置?有可能吗?
需要无属性要求,因为后期绑定程序集不应该依赖于 AutoFac。
提前致谢。
更新:解决方案
Travis 在下面的回答包含指向常见问题解答的链接,这使我找到了可接受的解决方案。使用“标记”接口,例如IDependencyOne : IDependency
and IDependencyTwo : IDependency
,然后SomeService(IDependencyOne dependency1, IDependencyTwo dependency2)
。我不太喜欢的事情是,现在一个通用的装饰器IDependency
需要实现所有标记,比如LoggingDecorator : IDependencyOne, IDependencyTwo
我想在 中使用它SomeService
,但只要标记保持为空,这不是一个大问题。这样我就不必在后期绑定的程序集中强制依赖 Autofac 的 dll,同时仍然在 JSON 文件中配置 DI。
c# - 如何定义解析 json/xml 配置时使用的默认 Autofac 语言环境
我正在尝试使用 xml 配置来配置 autofac,但遇到了语言环境问题。我尝试注册的组件之一需要双参数,该参数在我的本地系统上具有格式 xxx,yyy - 使用逗号作为小数分隔符。我必须使用的另一个系统使用点作为小数分隔符。有没有办法强制 autofac 忽略语言环境设置,只解析带点作为小数点分隔符的数字?
这个配置
投掷
如果我使用逗号注册在我的设备上有效,但在其他设备上无效。
我可以通过在注册和容器构建期间设置CurrentThread.CurrentCulture来克服这个问题,但这对我来说似乎不是一个正确的解决方案。
azure - 使用 Autofac 在项目中设置 AAD 身份验证
我有一个具有 AAD 身份验证的 Web API(在代码中,因为它在 IaaS 而不是 PaaS 中运行)它运行良好,但是如果我将 Autofac 配置添加到 Startup.cs,身份验证中断,(如果我在 Auth 初始化 Autofac 中断之后放置 Autofac ) 这让我认为配置正在相互覆盖。
我试图找到有关如何将它们一起使用的任何文档,但我找不到任何信息。一个使用 HttpConfiguration,另一个使用 IAppBuilder,我不知道如何将它们组合在一起以使它们一起工作。
这是我的身份验证代码:
这是Autofac代码
一起使用这两个工具的最佳实践是什么?
dependency-injection - 在 Autofac 中共享依赖实例的正确方法是什么?
我有三个类,比如说,A
和B
,C
所以:
A
取决于 和 的B
实例C
;B
取决于 ; 的一个C
实例- 两者都
A
需要B
共享C
.
如何配置容器以通过一次调用正确连接事物Resolve<A>()
?
c# - 在 ASP.NET Core 3.0 Preview 5 或更高版本中配置 AutoFac
按照 AutoFac 文档,我能够在 ASP.NET Core 3.0 Preview 3 中使用 AutoFac。ASP.NET Core 3.0 Preview 4 和 ASP.NET Core 3.0 Preview 5 引入了重大更改,AutoFac 不再有效。我的控制器方法返回运行时错误。
我的代码中 ASP.NET Core 3.0 Preview 3 和 ASP.NET Core 3.0 Preview 5 的区别如下:
IWebHostBuilder -> IHostBuilder
CreateWebHostBuilder -> CreateHostBuilder
WebHost.CreateDefaultBuilder(args) -> Host.CreateDefaultBuilder(args)
至
程序.cs
启动.cs
应用程序模块.cs
c# - 减少不断增加的构造函数服务参数
我对使用 Autofac 还是很陌生,并且对我正在使用的构造函数注入方法感到困扰。这是场景:
我目前有两个继承IForms
接口的类。每个类也有自己的接口
现在我有一个处理这个的类,如下所示:
现在有可能还会有 2 种形式出现(例如FormC
, FormD
, FormE
)。这里会发生的是构造函数中多了 3 个构造函数参数ApplicationForms
。
有没有一种方法可以将所有构造函数参数组合成一个参数?我可以看到它最终肯定会看起来很丑。
c# - Web api控制器中的注入不使用单实例
我有一个在我的容器中注册为单个实例的服务
容器创建如下
这一切都在正常代码中完美运行 - 我可以注入我的服务并按照我的预期解决它
但是,当我尝试将我的服务注入 web api 控制器时,该服务再次被解析,但 Autofac 给了我一个新的服务实例
如何防止这种行为,以便注入最初创建的实例?
c# - Autofac RegisterAssemblyTypes 在构造函数参数中注入 Null
班上
Autofac 配置
让我们忽略存储库不应该向客户发送电子邮件。不是我的代码。它正在重构。
如果我使用 foreach 循环注册程序集类型,则在创建 CustomerRepository 时,电子邮件管理器始终为空。
如果我删除循环以注册程序集类型,则会使用有效的电子邮件管理器创建 CustomerRepository。
为什么调用 RegisterAssemblyTypes 会阻止创建电子邮件管理器?
我尝试过的事情,
- 首先注册程序集类型。然后是个别类型。
- 从 RegisterAssemblyTypes 查询中删除 except 子句。
- 在没有 SingleInstance 约束的情况下注册 EmailManager。
c# - Autofac 注册所有名为 IFoo.Name 的 IFoo 类型
刚刚学习 Autofac 并努力按照惯例注册一些命名实例。
看着这个界面,我想要完成的是这些方面的事情
我已经尝试了一些变化来达到这种效果。最终目标是动态注册和解析实例。