依赖注入是:实现松散耦合的技术,将依赖关系注入到容器中。在 ASP.NET CORE 中的
容器为 IServiceProvider 接口表示,任何人可以实现自己的容器,只支持构造函数注
入
这个容器微软默认注入了一些框架本身的服务对象。
生命周期:Transient 多例,Scoped 每次请求,Singleton 单例
任何地方使用:HttpContext.RequestServices 可以访问容器。
例:我们来使用一下依赖注入
1.自己的服务接口:
public interface IMyservices
{
/// <summary>
/// 获取Guid
/// </summary>
/// <returns>Guid</returns>
string GetGuid();
}
2.实现接口:
public class MyServices:IMyservices
{
private readonly string guid;
public MyServices() {
this.guid = Guid.NewGuid().ToString();
}
public string GetGuid()
{
return guid;
}
}
3.将服务注入到容器:
Startup->ConfigureServices中调用:
services.AddTransient<IMyservices, MyServices>();
4.使用:
webApi中默认的控制器中添加:
启动项目:
Try一下成功调用了我们注入的服务的方法

其他:
为了方便管理与简洁
我们可以写一个扩展方法将相关的服务在此扩展方法中注入
public static class AddServicesExtebsuins
{
public static IServiceCollection AddMyServices(this IServiceCollection
services)
{
services.AddTransient<IMyservices, MyServices>();//多例
return services;
}
}
Startup->ConfigureServices中调用:
services.AddMyServices();
即可注入我们AddMyServices中注入的所有服务了