当前位置: 首页 > 知识库问答 >
问题:

在基础设施层使用依赖注入

阎祖鹤
2023-03-14

在ASP中创建示例项目时,我使用了四个层。net核心,如下所示

我还在启动中实现了依赖注入.cs我的API项目中。而且效果很好。

services.AddTransient<IUserRepository, UserRepository>();

我有两个问题要问。

> < li>

可以在我的基础结构层而不是API层进行依赖注入吗?如果是,你能指导我怎么做吗?

如果我说错了纠正我,如果Asp.Net核心默认有依赖注入,那么我们就不需要Autofac(或者类似的第三方DI插件)。正确让我重新措辞这个问题。Asp核心中的Autofac有什么用?

任何建议都会有所帮助。

谢谢。

共有1个答案

裴彦
2023-03-14
  1. 当然可以。它的工作原理与其他任何DI一样。例如,我所做的是:

为您的基础架构层提供一个Config类,该类的Configure方法要求签名中包含IServeCollection,如下所示:

    public static class InfrastructureConfiguration
{
    public static void Configure(IServiceCollection services)
    {

    }
}

您可以从Startup类中的配置服务方法调用此配置方法。

在configure方法中,你可以连接你需要的东西,比如你有MyAwesomeInfraClass,你可以这样做:

    public static class InfrastructureConfiguration
{
    public static void Configure(IServiceCollection services)
    {
       services.AddTransient<MyAwesomeInfraClass>();
    }
}

现在您可以在任何您喜欢的地方注入MyAwesomeInfraClass,例如在控制器中,如下所示:

    public class HomeController : Controller
{
     private readonly MyAwesomeInfraClass _myAwesomeInfraClass;

     public HomeController(MyAwesomeInfraClass myAwesomeInfraClass){
       _myAwesomeInfraClass = myAwesomeInfraClass;
     } 
}
 类似资料:
  • 链接 集成EntityFramework 集成NHibernate 集成EntityFramework Core 集成EntityFramework MySQL 集成Dapper

  • 9.2 ABP基础设施层 - 集成Dapper 9.2.1 简介 Dapper 是基于.NET的一种对象关系映射工具。Abp.Dapper简单的将Dapper集成到ABP。它作为第二个ORM可以与EF 6.x, EF Core 或者 Nhibernate 工作。 9.2.2 安装 在开始之前,你需要安装Abp.Dapper以及 EF 6.x, EF Core 或者 NHibernate 这3个当中

  • 9.2 ABP基础设施层 - 集成NHibernate ABP可以与任何ORM框架协同工作,它内置了对NHibernate的集成支持。本文将介绍如何在ABP中使用NHibernate。本文假定你已经初步掌握了NHibernate。 译者注:怎么才算初步掌握了NHibernate呢?译者认为应当懂得使用NHibernate进行CRUD,懂得使用Fluent模式进行映射。 9.2.1 Nuget包 要

  • 9.1 ABP基础设施层 - 集成Entity Framework ABP可以与任何ORM框架协同工作,它内置了对EntityFramework的集成支持。本文将介绍如何在ABP中使用EntityFramework。本文假定你已经初步掌握了EntityFramework。 译者注:怎么才算初步掌握了EntityFramework呢?译者认为应当懂得使用Code First模式进行CRUD。 9.1

  • ABP 基础设施层 - 集成 Entity Framework MySql 9.4.1 简介 虽然启动模板默认设计是使用Sql Server,但是你可以很容易的修改它来使用MySql。要这么做的话,你需要跟随一下步骤: 9.4.2 实现使用MySQL 下载项目 请到 http://aspnetboilerplate.com/Templates 下载一个新的项目,选择ASP.NET 5.x标签,还有

  • ABP 基础设施层 - 集成 Entity Framework Core 9.3.1 简介 Abp.EntityFrameworkCore nuget package 被用来集成到EF Core ORM框架. 在安装这个包以后,我们应该在模块类 AbpEntityFrameworkCoreModule 上添加 DependsOn 特性。 9.3.2 DbContext EF Core要求有个派生自