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

c# - Web api控制器中的注入不使用单实例

我有一个在我的容器中注册为单个实例的服务

容器创建如下

这一切都在正常代码中完美运行 - 我可以注入我的服务并按照我的预期解决它

但是,当我尝试将我的服务注入 web api 控制器时,该服务再次被解析,但 Autofac 给了我一个新的服务实例

如何防止这种行为,以便注入最初创建的实例?

0 投票
0 回答
721 浏览

autofac - 如何使用 Autofac 模块配置 MassTransit?

我正在尝试使用 Autofac(最新的 NuGet 包)设置 MassTransit,但似乎无法在该ContainerBuilder级别注册消费者。有没有人设法将 MassTransit 与 Autofac 一起使用,尤其是与模块一起使用?

在下面的示例中,DoSomethingConsumer 无法解析,除非我取消注释该x.AddConsumer行并注释构建器上的注册。

https://masstransit-project.com/MassTransit/usage/containers/autofac.html上的文档似乎是错误的。构建器上没有.AddConsumer扩展方法。

我希望从模块中注册消费者,并能够按照约定(如上面的示例)或使用.RegisterEndpoint.

对此的任何帮助将不胜感激。

0 投票
2 回答
253 浏览

object-lifetime - Autofac:需要:在 AutofacModule 中处理的实例的生命周期结束事件

我使用 C# 和 Autofac 4.9.4。我有一个 Autofac 模块,它连接到 IComponentRegistration.Activated 事件。它查找某些类的激活实例并将它们注册到某个管理器类中。当然,此注册应限于受影响对象的生命周期。因此模块需要知道对象何时被容器丢弃,然后从管理器中注销它。否则我会产生内存泄漏。当我向 autofac ContainerBuilder 注册一个类时,有一个 OnRelease-Method,但这不是正确的地方;我需要模块内的这样一个事件。

具体代码如下所示:

当一个物体被丢弃时,我怎样才能引起注意?

0 投票
1 回答
259 浏览

c# - 来自测试的 Autofac RegisterAssemblyTypes

在我的Startup课堂上,我有一个RegisterAssemblyTypes通过 autofac 的方法,如下所示:

当从集成测试中调用类时,建议使用Autofac(例如RegisterAssemblyTypes)注册程序集的方法是什么?Startup例如,

我正在使用 Autofac 4.9.4。

问题:

您如何在WebApplicationFactory<Startup>using中注册程序集类型Autofac

0 投票
2 回答
357 浏览

c# - 如何在同一解决方案中访问另一个项目的服务

我有一个控制台应用程序 A 和一个 Web 应用程序 B,其中 A 需要使用 B 中的服务类。为了处理依赖关系,我尝试在 B 中创建一个在 A 的 Main 方法中注册的 autofac 模块:

现在,问题是由于程序是在 A 的上下文中运行的,B 从 A 读取 appSettings ...

有没有办法让模块中注册的服务从 B 的 appsettings 中读取?还是首先在这里使用 autofac 模块是一种错误的方法?

0 投票
0 回答
22 浏览

asp.net - 在 autofac 注册控制器中查看注册 api url 的方法

在尝试调试 api 端点命中时,我通过邮递员获得的唯一信息是服务器上不存在带有消息文件或目录的 404(顺便说一下 IIS)。

我希望有一种方法可以通过 Autofac 注册控制器查看注册的端点。它是 ContainerBuilder 的一部分,代码如下:

0 投票
0 回答
243 浏览

asp.net - 在 Autofac 容器的新实例中使用现有的 IContainer

我有 .NET Core 3.1 控制台应用程序的解决方案,它使用 Autofac 作为 IoC 容器。在这个解决方案中,大约有 50 个项目作为类库,通过 Autofac 作为模块引用。现在我正在创建新模块,它将启动 .NET Core Web API,它将提供来自数据库和其他正在运行的模块的数据。

新的 Web API 模块声明如下:

我的问题是:

是否可以将包含所有模块、配置和数据库的现有 Autofac 实例添加到此创建的 WEB API 的实例中,而无需在启动时再次手动添加这些内容?

谢谢

笔记:

  • .NET Core 控制台应用程序 -> 从配置中加载模块
    • 将模块 1(数据库 1)加载为IDatabase1
    • 将模块 2(数据库 2)加载为IDatabase2
    • 加载了另外 40 个模块
    • 并加载新模块 RESTModule我将在其中使用IDatabase1IDatabase2和另外 10 个正在运行的模块
0 投票
1 回答
4440 浏览

asp.net-core - .NET Core 3.1 通用主机实现中的 ConfigureContainer

我正在尝试将我们的框架项目迁移到 .NET Core 3.1。作为迁移的一部分,我试图通过 GenericHost 提供的 ConfigureContainer 方法注册模块。这就是我所拥有的:

我的 WorkerServiceDependencyResolver 具有以下内容:

但是当我这样做时,我的应用程序没有运行,它启动时没有任何错误,但没有做任何事情。

但是如果我这样写(这就是我们在 .NET Framework 中的方式):

当我显式构建容器时,一切都按预期工作,但我的理解是我们在 .NET Core 中不需要它?

非常感谢任何输入。

干杯!

0 投票
1 回答
67 浏览

asp.net-core - Autofac:使用 autofac 配置加载模块的问题

我正在尝试通过 Autofac Configuration 在我的 .net core3.1 项目中加载依赖项。

但是,我在启动时遇到错误。

找不到类型“TPrefix.TServiceName.Messaging.MessagingModule,TPrefix.TServiceName.Messaging”。它可能需要装配资格,例如“MyType, MyAssembly”。

有人可以帮我指出方向,我哪里出错了。

以下是详细信息——

我的 autofac.json 文件:

我的代码结构如下所示:

在此处输入图像描述

大家好,我正在尝试在TPrefix.TServiceName.Messaging程序集中加载依赖项,如下所示:

0 投票
1 回答
107 浏览

autofac - 您如何在 Autofac 中提供特定注册作为其他注册的参数?

您能否就如何将一些引用传递给其他注册提供一些指导?

你能帮助实现这一目标吗?

任何帮助,将不胜感激 ?

谢谢,我