【问题标题】:Using Autofac in an embedded ASP.NET Core project在嵌入式 ASP.NET Core 项目中使用 Autofac
【发布时间】:2019-03-30 22:27:03
【问题描述】:

我在 WPF 应用程序中使用 ASP.NET Core 2.1 来提供对应用程序的 REST API 访问。该应用程序使用 Autofac 并且在应用程序启动时已经注册了几个模块。 按照 Autofac 快速入门指南(“With ConfigureContainer”),我将 DependencyInjection NuGet 包添加到 ASP.NET Core 项目中,并在 WebHostBuilder 的创建部分中对其进行了配置

.ConfigureServices(services => services.AddAutofac())

但是,依赖注入在 ASP.NET Core 控制器中不起作用。我确定我错过了一个配置步骤,所以任何提示如何使用已注册的组件?

更新:我按照指南 "Adding a custom dependency injection container in ASP.NET Core" 并将 ASP.NET Core 依赖项填充到自己的容器中,但是,这个容器不知道容器,也不知道已经工作的实例的 LifetimeScope主应用程序的 Autofac。

【问题讨论】:

  • 对不起,但我不明白你为什么使用 asp.net mvc 设置来简单地提供一个安静的 api 访问......也许我读错了。
  • 我们在后台拥有的不仅仅是一个安静的 API 工作(但目前这是我们开始的地方),并且希望在我们的应用程序中使用一个灵活且可扩展的系统。 ASP.NET Core 正好提供了这一点。
  • 您能否提供您的启动类以用于上下文或您在 autofac 容器中注册服务的位置?

标签: c# asp.net autofac


【解决方案1】:

我想我遇到了同样的问题。我没有在我的电脑上完美重现您的问题,所以如果它不适合您,我可以稍后更新,但是:

我添加了 .UseServiceProviderFactory(new AutofacServiceProviderFactory())ConfigureServices.

我从这个blog post.找到了这个

【讨论】:

  • 您好,感谢您的回答。我尝试使用它,但我使用的是WebHostBuilder.CreateDefaultBuilder(),似乎无法在其上使用.USeServiceProviderFactory(...)。我能够通过教程"Adding a custom dependency injection container in ASP.NET Core" 在自己的容器中注册 ASP.NET Core 内容。但是在新的 ContainerBuilder 中不知道已经注册的应用程序之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-27
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多