首页 > Web开发 > 详细

【.NETCORE】依赖注入

时间:2021-04-09 09:39:45      阅读:13      评论:0      收藏:0      [点我收藏+]
依赖注入是:实现松散耦合的技术,将依赖关系注入到容器中。在 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中注入的所有服务了

  



【.NETCORE】依赖注入

原文:https://www.cnblogs.com/lbonet/p/14635513.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!