在.NET Core中,依赖注入(Dependency Injection,简称DI)是框架的一个重要特性,可以帮助我们解耦代码、管理对象生命周期以及提高可测试性等.一下是.NET Core中依赖注入的一些基本概念和用法:
1、服务(Service):在DI中,服务即一个对象或者类型。用于完成特定的功能.例如,数据库访问、日志记录等都可以看作一个服务
2、容器(Container):DI容器用于管理服务的注册和解析.在NET Core中。框架提供了一个内置的DI容器,可以扩展方法services.AddXXX()来注册服务。
3、生命周期(Lifetime):在DI中,生命周期用于控制服务示例的创建和销毁.例如,一个服务可以是Singleton单例的,即全局仅创建一个实例;也可以是Scoped作用域的,即在同一请求范围内创建一个实例;还可以是Trasient瞬态的,即每次请求都创建一个新的实例
4、依赖注入(Dependency Injection):依赖注入是指将一个对象所依赖的其他对象通过构造函数、属性或方法等方式,由容器自动注入给对象.在.NET Core中,主要使用构造函数注入的方式。
下面是一个.NET Core中使用依赖注入的示例:
public interface IMyService
{
void DoSomething();
}
public class MyService:IMyService
{
public void DoSomething()
{
Console.WriteLine("Do something...");
}
}
public class MyClass
{
private readonly IMyService _myService;
public MyClass(IMyService myService)
{
_myService=myService;
}
public void eat()
{
_myService.DoSomething)'
}
}
//如果是.NET Core:在Startup的ConfigureServices方法中注册服务和依赖注入
service.AddTransient<IMyService,MyService>();
//如果是.NET6:在Program中注册服务和依赖注入
builder.Services.AddTransient<IMyService,MyService>();
//在需要使用服务的类中。通过构造函数注入方式获取服务
public class MyController:Controller
{
private readonly IMyService _myService;
public MyController(IMyService myService)
{
_myService=myService;
}
public IActionResult Index()
{
_myService.DoSomething();
return View();
}
}
在以上示例中,IMyService是一个服务接口,MyService的类。在Startup的ConfigureServices方法中(在program中),将服务注册到容器中;在MyClass的构造函数中,使用构造函数注入的方式获取服务;在MyController中,同样使用构造函数注入的方式获取服务。
随堂笔记,侵权请联系作者删除!
标签:Core,依赖,IMyService,myService,NET,public,注入 From: https://www.cnblogs.com/wypd/p/17348588.html