一、概述
为了让接口程序更加模块化和可测试,采用依赖注入的方式调用接口方法。
二、安装Microsoft.Extensions.DependencyInjection
在NuGet里面搜索Microsoft.Extensions.DependencyInjection,并进行安装。
三、代码编写
3.1 创建Service 实现类
/*************************************
* 功 能:测试Service实现类
* 创 建 人:********
* 创建时间:2024-02-19
* ***********************************/
namespace Application
{/// <summary>/// 测试Service./// </summary>public class TestService : ITestService{/// <summary>/// 测试查询./// </summary>public List<AgentGroup> TestSelect(){var list = SqlSugarORM.SqlSugarHelper.Db.Queryable<AgentGroup>().ToList();return list;}}
}
3.2 创建Service 声明类
/*************************************
* 功 能:测试Service 接口类声明类
* 创 建 人:********
* 创建时间:2024-02-19
* ***********************************/namespace CadApplication.Service
{public interface ITestService{/// <summary>/// 测试查询./// </summary>List<AgentGroup> TestSelect();}
}
3.3 控制器里面通过构造函数注入
/************************************** 功 能:测试控制器* 创 建 人:********* 创建时间:2024-02-19* ***********************************/
namespace WebApi.Controllers
{/// <summary>/// 测试Controller./// </summary>[ApiController][Route("[controller]")]public class TestController : ControllerBase{private readonly ITestService _testService;/// <summary>/// 构造函数./// </summary>/// <param name="testService"></param>public TestController(ITestService testService) {_testService=testService;}/// <summary>/// 测试查询./// </summary>[Route("TestSelect")][HttpPost]public List<AgentGroup> TestSelect() {return _testService.TestSelect();}}
}
3.4 在启动类里面配置注入的Service
builder.Services.AddSingleton<ITestService, TestService>();
整体的Program.cs代码如下:
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;var builder = WebApplication.CreateBuilder(args);// Add services to the container.builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddSingleton<ITestService, TestService>().AddSingleton<DrawLineService>();var app = builder.Build();// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI();
}app.UseAuthorization();app.MapControllers();app.Run();
四、结束
至此.net配置依赖注入结束。