问题标签 [autofac-module]

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

c# - 跨层的 Autofac 模块注册树

所以我有一个典型的三层应用程序分层如下

DAL -> 存储库 -> 业务 -> Web.UI/API

我一直在阅读这篇关于通过模块集中它们来注册依赖项的文章。

Web 层只有一个对 Business 的引用,它只有一个对 Repo 的引用,它只对最低 DAL 层有一个引用。在此拓扑中,由于 UI/API 层对存储库一无所知,也没有对其的引用,因此我无法在 UI/API 层的存储库中注册模块。同样,我无法在业务层中注册 DAL 中存在的模块。我想要做的是在最顶层开始注册过程,然后在后续层中引发注册的级联效应。

通常,这看起来像每一层都暴露一个 RegisterAllModules 方法,并以某种方式从它下面的层触发 RegisterAllModules 方法。有没有做过这样的事情?还是有其他方法可以做到这一点?在这一点上,我不知道我是否应该像上面提到的那样推出自己的逻辑,因为我不知道是否有记录的方式来做这样的事情。关于如何在这里最好地前进的想法是我正在寻找的。

谢谢。

0 投票
2 回答
836 浏览

c# - 如何使用 Autofac 使连接字符串在 N 层 ASP.NET MVC Core 1.0 应用程序中可用

我通过 autofac模块将层连接在一起。非常感谢endeffects这是操作方法。现在我正在尝试使连接字符串在 DAL 层中可用。我试图注册:

Startup课程开始,但没有任何成功。

0 投票
1 回答
5862 浏览

asp.net - 找到的任何构造函数都不能使用可用的服务和参数 Autofac 调用

我已阅读并编码以下示例:http ://timschreiber.com/2015/01/14/persistence-ignorant-asp-net-identity-with-patterns-part-1/ 但该示例使用 Unity 进行 DI,但我我使用 Autofac 作为 ID,当我尝试运行我的项目时,出现以下错误:

在“App.Front.Controllers.HomeController”类型上使用“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”找到的任何构造函数都不能使用可用的服务和参数调用:无法解析参数“Microsoft.AspNet.Identity.UserManager 2[IdentityStore.IdentityUser,System.Guid] userManager' of constructor 'Void .ctor(Microsoft.AspNet.Identity.UserManager2 ” [IdentityStore.IdentityUser,System.Guid])'。

我的代码:

请任何人帮助我!

0 投票
1 回答
724 浏览

c# - 注册 Autofac 模块,就像异步一样

我在使用 Autofac 时遇到了一个奇怪的问题。我有一个模块,其Load方法如下所示:

在哪里AddSomethingToAList完全按照它在锡上所说的那样,将资源添加到静态列表中。它用于跟踪一些元数据并保存在模块内,因为此元数据与为依赖注入注册的类型直接相关。

然后我的代码有一个设置方法,如下所示:

如您所见,我们注册了模块(我希望Load为该模块调用),然后我们对加载模块时添加的列表做一些事情。

这是奇怪的部分:列表在添加任何内容之前得到处理。这是完全出乎意料的(如果代码是同步的和确定的)。就好像模块正在异步处理。如果不是builder.RegisterModule(myModule)我只是打电话myModule.Load(builder),那么它完全按预期工作。

文档中没有任何内容说它是异步的,而且看起来很不合适。Load我通过在模块的方法内和处理列表时放置断点来遵循这种行为。

那么到底是RegisterModule什么导致了这种不寻常的执行顺序呢?为什么?我该如何阻止它?

0 投票
2 回答
1041 浏览

c# - N 层架构中的 Autofac 模块

目前我正在使用AutofacIoC 和两个组合根(一个用于前端,一个用于后端),我注册并解析跨越和Service层的组件。BusinessData

到目前为止,我只有一个像“AccountingModule”这样的。现在,我将向应用程序添加几个新模块,其名称类似于InventoryModule...

我的问题是我应该在层之间拆分每个模块类(解决方案 1)还是为每个模块分别设置所有层(解决方案 2)

解决方案1:



或者

解决方案2:


编辑 1

编辑 2 架构:

在此处输入图像描述

0 投票
1 回答
13875 浏览

c# - Autofac 模块注册

我主要使用 Ninject,所以如果我混淆了术语,我深表歉意。

我创建了一个记录器模块来使用目标类名称作为记录器名称来处理 NLog。它与此非常相似:http ://docs.autofac.org/en/latest/examples/log4net.html?highlight=log4net

我还在服务层中创建了一个模块,负责处理所有服务级别的注册。看起来像这样:

这是我的autofac注册:

在运行时,我收到一个异常说 ILogger 尚未注册,我是否遗漏了有关模块如何工作导致 ILogger 在我的服务模块中不可见的一些内容?

0 投票
1 回答
637 浏览

c#-4.0 - 在 Autofac 中有条件地注册类型

我有父类动物和两个子类狗和猫。我正在使用 Autofac 进行依赖注入。我想根据配置文件中指定的条件注册 Dog 和 Cat。

我想在我的模块类中使用以下代码。

If Dog mentioned in Config file then builder.RegisterType<Dog>().As<Animal>().PropertiesAutowired().SingleInstance(); If cat mentioned in Config file then builder.RegisterType<Cat>().As<Animal>().PropertiesAutowired().SingleInstance();

请建议相同。

0 投票
0 回答
602 浏览

autofac - 如何从 Autofac app.config 文件中注册类型

在我的容器的构建中,我想通过配置文件提供这些行之一

使用此处的示例:http: //docs.autofac.org/en/latest/configuration/modules.html#encapsulated-configuration

但它相当有限,并不是一个完整的例子。出于某种原因,我也无法找到 ConfigurationSettingsReader 类。

我正在使用 Autofac 4.1 版,因为这个以前的问题现在已经超过 5 年了,我认为它不再相关。

0 投票
4 回答
1324 浏览

c# - Autofac 模块应该注册自己的依赖模块吗?

考虑我有一个使用三个库 lib1、lib2 和 lib3 的应用程序。在每个库中,我实现了一个Module注册在该库中实现的依赖项的库。

其中一些实现有自己的依赖关系,例如,lib2 和 lib3 可能都需要一些存在于 lib1 中的实现。

我的问题是,我是否让 lib2 和 lib3 中的模块在 lib1 中注册模块作为其Load实现的一部分?如果我的应用注册了 lib2 和 lib3 的模块,这是否会注册该模块两次?

或者我是否避免让一个模块注册另一个模块,将其留给应用程序,缺点是启动时可能会丢失一些注册?

0 投票
1 回答
334 浏览

c# - 通过 JSON 中的 Autofac.Configuration 在字典属性中嵌套列表

我使用Autofac.Configuration但我不能使用嵌套属性配置。以下属性 NestedListInDictPropThatDoesNotWork 不起作用:

我必须为此使用其他语法吗?我想配置一个字典,其中的值是项目列表而不是简单的值类型。