问题标签 [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 回答
159 浏览

c#-4.0 - autofac 无法正确解析通用列表类型

我正在尝试使用 autofac Container 解析对象列表,并期待一个空列表作为响应。但是,我无法获得空列表作为回报,而是将计数计为 1。

我也尝试在 aotufac conatiner 中不进行列表注册,但得到相同的响应。

0 投票
0 回答
55 浏览

dependency-injection - Autofac 依赖注入 - 设置公共属性

我正在构建asp.net WebAPI 项目并使用 Autofac 作为 IOC。现在我正在做基于构造函数的注入,并从控制器类调用业务类的各种方法。

现在我想通过公共属性 IncomingUser 将一些额外的数据传递给业务类,例如这个:-

我的界面如下所示:-

这个只读属性 IncomingUser 将在类 UserManager 下定义的各种方法中使用。

从 API 控制器,我设置 DI 是这样的:-

请建议,我应该如何在autofac DI或其他方式的帮助下从 API 控制器类中设置属性 IncomingUser。

0 投票
1 回答
46 浏览

asp.net-core - Autofac 注册封闭类型并在运行时检索它们

我有一个将采用泛型类型的接口T

接下来我将在多个类中实现这个接口。例如

要使用 outofac 注册它,我使用了这个

我的问题是这个。我有这个接口的多个实例。如何在运行时访问不同的实例?如果我IQuestion<T>Options上课并且也会Answer上课,我如何在运行时获取这些类的实例?

0 投票
3 回答
3383 浏览

c# - 使用 Autofac 在我的组件类 Azure Functions 中注入 ILogger 实例

我正在编写一个简单的 Azure 函数。

我已经安装了AzureFunctions.Autofacnuget 包,并希望将其用作我的DI库。

我已经设置了以下AutofacConfig类来注册我的类型:

这是我的EventComponent课程,我想将ILogger提供的实例注入其中。

这是我注入 EventComponent 的方式:

问题是,我在上面遇到异常,因为Autofac无法解析参数 Microsoft.Extensions.Logging.ILogger。

这是异常消息:

异常绑定参数“组件”...无法解析构造函数“Void .ctor(Microsoft.Extensions.Logging.ILogger)”的参数“Microsoft.Extensions.Logging.ILogger logger”。(有关详细信息,请参阅内部异常。)-> 无法使用可用的服务和参数调用类型为 'Event.Function.Components.EventComponent' 的具有 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' 的构造函数:\r \n无法解析构造函数 'Void .ctor(Microsoft.Extensions.Logging.ILogger)' 的参数 'Microsoft.Extensions.Logging.ILogger logger'。",

如何将ILogger实例注入我的EventComponent班级?

0 投票
1 回答
960 浏览

autofac - Autofac 模块实现 - 连接字符串

简介: - 我是编程新手,我经常使用构造函数注入和工厂模式。这将是我第一次为 DI 使用第三方工具 Autofac。我了解基础知识,但我正在寻找对一些事情的理解,希望您能提供帮助。

项目设置: N-Tier MVC 应用程序(数据、模型、测试、UI 项目)(NuGet Autofac 和 Autofac.MVC5 仅安装在 UI 项目中)

问题: Autofac 应该通过 NuGet 安装在我的 N-Tier MVC 应用程序中的每个项目中,还是只是在 UI 项目中安装它好吗?我正在试验 Modules 并好奇我的 DataAccessModule 是否应该放在我的 Data 项目和 UI 项目中。

多部分问题: 我正在尝试将连接字符串注入我的存储库,但我不确定我是否正确执行此操作。根据在我的 Web.config 文件中设置的 RepositoryType 值注册存储库。我在示例中使用 ADO 和存储过程。阅读有关 Autofac.Module 的信息,我认为这是要走的路。

自动配置

数据存取模块

存储库

  • 我对如何实现我的模块并传入连接字符串还有很长的路要走吗?
  • 我是否应该将我的连接分成一个单独的类,该类使用 GetConnectionString 方法实现接口并解析它并将实例范围设置为单个实例而不是我拥有它的方式?
  • 存储库应该使用 InstancePerRequest 还是 InstancePerLifetimeScope?我在一些例子中都看到过,所以我只想知道什么是最好用的以及为什么/何时

问题:我应该在项目中 看到“ new ”关键字的任何地方尝试注入该依赖项吗?例如,在我的存储库中,SqlConnection 或 SqlCommand 对象?

您可以提供的任何帮助或指导将不胜感激。我尝试执行一个非常基本的示例,以更好地了解如何配置其他组件

先感谢您!

0 投票
1 回答
102 浏览

asp.net-web-api2 - 有没有办法知道控制器是否注册了 IAutofacAuthorizationFilter

我们正在使用 Autofac 的 IAutofacAuthorizationFilter 构建授权过滤器,我们已经在启动时使用我们的基本控制器注册了这个过滤器。所有控制器都继承自我们的基本控制器。我们在执行过程中需要确定目标控制器是否已向 CustomAuthFilter 注册。我尝试使用反射来检查控制器是否注册了CustomAuthFilter,我无法获得。他们是否有更好的方法来检查控制器是否已向 CustomAuthFilter 注册。

0 投票
1 回答
54 浏览

c# - 如何注册装饰器以解析装饰器

我正在使用 Autofac。我正在尝试使用装饰器模式注册 2 个具有相同接口的类。

我想使用容器来解决两种不同情况的两种类型:

  • IDoable我希望该实例是Decorator
  • 针对Decoree我真正需要解决特定Decoree实例的具体情况。

实现它的唯一方法是使用以下代码:

}

问题是我真的很喜欢最后一个断言是真的:) 所以这是同一个例子。

基本上我的问题是:是否可以使用named和type两种方式注册type

0 投票
1 回答
225 浏览

c# - 如何在 Quartz.net 的作业类中使用我的一些服务和存储库?

我需要在 Quartz.net 的作业类中使用我的一些服务我使用 Autofac 作为依赖注入

0 投票
1 回答
1490 浏览

c# - Autofac 和 ASP.NET Core:为什么 ASP.NET Core 在从 StartupBase 继承的 Startup 中无法访问 ConfigureContainer 方法?

描述:

我正在使用 Autofac 创建一个 ASP.NET Core 应用程序,因此我正在关注为它提供的文档:https ://autofaccn.readthedocs.io/en/latest/integration/aspnetcore.html ,应该是一个非常简单的路径,但我确实有一个问题,我的 Statup 类继承自 Microsoft.AspNetCore.Hosting.StartupBase 这使我实现了下一个:

到目前为止一切都很好,我的 Statup 类看起来像这样

和 Program.cs,只是为了举例,这是一些例子

问题:

一旦应用程序开始运行,它应该点击 ConfigureContainer 方法,但它没有,我不知道为什么,这意味着我无法注入在 AutofactModule 类中注册的任何东西,我设法解决了这个问题,但我想知道发生了什么幕后,

使固定:

我已经删除了 StartupBase 的继承,一切都很好

理论:

我怀疑 .UserStartup 中的 Autofac 以某种方式获取了基类并尝试从中获取方法,但我无法证明这一点,也找不到合适的词来搜索它。有人可以解释一下为什么这里的简单继承是个问题吗?

0 投票
3 回答
1320 浏览

c# - 无法使用 Autofac 进行属性注入

我是autofac的新手。我正在尝试使用这个 IoC 容器进行属性注入。以下是我的代码。我收到错误:

你调用的对象是空的

在这一行: . return _salary.employeeSalary; 在GetSalary(int employeeId)方法中。在我什至尝试过的程序课上,build.RegisterType<Employee>().WithProperty("_salary", new Salary{ employeeId = 5, employeeSalary = 500 });