zoukankan      html  css  js  c++  java
  • 【.NETCORE】依赖注入

    依赖注入是:实现松散耦合的技术,将依赖关系注入到容器中。在 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中注入的所有服务了

      



  • 相关阅读:
    HTTP状态详解
    表锁和行锁
    memcache 加载(对象)所遇到的问题。资源
    php 数据导出csv 注意问题。
    文件不存在的话创建文件 文件上传所遇到的问题、
    获取文件的后缀名。phpinfo
    手机访问pc网站自动跳转手机端网站代码
    计算机网络学习-20180826
    计算机网络学习-20180811
    集线器和交换机的区别
  • 原文地址:https://www.cnblogs.com/lbonet/p/14635513.html
Copyright © 2011-2022 走看看