<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ASP.NET CORE 學(xué)習(xí)之原生DI實現(xiàn)批量注冊

      以前使用Autofac的時候,只需一句AsImplementInterfaces()就可以很輕松實現(xiàn)批量注冊功能。而asp.net core內(nèi)置的DI框架沒有現(xiàn)成的批量注冊方法,考慮到替換Autofac框架過程有些繁瑣,于是自己寫擴(kuò)展實現(xiàn)了一個簡易的原生DI批量注冊功能

      Startup.cs擴(kuò)展

       1 public static class StartUpExtenions
       2     {
       3         /// <summary>
       4         /// 批量注冊服務(wù)
       5         /// </summary>
       6         /// <param name="services">DI服務(wù)</param>
       7         /// <param name="assemblys">需要批量注冊的程序集集合</param>
       8         /// <param name="baseType">基礎(chǔ)類/接口</param>
       9         /// <param name="serviceLifetime">服務(wù)生命周期</param>
      10         /// <returns></returns>
      11         public static IServiceCollection BatchRegisterService(this IServiceCollection services, Assembly[] assemblys, Type baseType, ServiceLifetime serviceLifetime = ServiceLifetime.Singleton)
      12         {
      13             List<Type> typeList = new List<Type>();  //所有符合注冊條件的類集合
      14             foreach (var assembly in assemblys)
      15             {
      16                 //篩選當(dāng)前程序集下符合條件的類
      17                 var types = assembly.GetTypes().Where(t => !t.IsInterface && !t.IsSealed && !t.IsAbstract && baseType.IsAssignableFrom(t));
      18                 if (types != null && types.Count() > 0)
      19                     typeList.AddRange(types);
      20             }
      21             if (typeList.Count() == 0)
      22                 return services;
      23 
      24             var typeDic = new Dictionary<Type, Type[]>(); //待注冊集合
      25             foreach (var type in typeList)
      26             {
      27                 var interfaces = type.GetInterfaces();   //獲取接口
      28                 typeDic.Add(type, interfaces);
      29             }
      30             if (typeDic.Keys.Count() > 0)
      31             {
      32                 foreach (var instanceType in typeDic.Keys)
      33                 {
      34                     foreach (var interfaceType in typeDic[instanceType])
      35                     {
      36                         //根據(jù)指定的生命周期進(jìn)行注冊
      37                         switch (serviceLifetime)
      38                         {
      39                             case ServiceLifetime.Scoped:
      40                                 services.AddScoped(interfaceType, instanceType);
      41                                 break;
      42                             case ServiceLifetime.Singleton:
      43                                 services.AddSingleton(interfaceType, instanceType);
      44                                 break;
      45                             case ServiceLifetime.Transient:
      46                                 services.AddTransient(interfaceType, instanceType);
      47                                 break;
      48                         }
      49                     }
      50                 }
      51             }
      52             return services;
      53         }
      54     }

       

      在ConfigureServices方法中調(diào)用批量注冊

       1 services.BatchRegisterService(new Assembly[] { Assembly.GetExecutingAssembly(), Assembly.Load("Test.DAL") }, typeof(IDependency)); 

       

      經(jīng)測試 ,使用擴(kuò)展批量注冊的方式注冊的服務(wù)類正常工作

      posted on 2019-01-14 13:13  #山雞  閱讀(2682)  評論(3)    收藏  舉報

      導(dǎo)航

      主站蜘蛛池模板: 亚洲成av人片无码迅雷下载| 国产精品久久久国产盗摄| 国产不卡一区二区在线| 亚洲国产精品成人综合色在| 国产无套粉嫩白浆在线| 欧美级特黄aaaaaa片| 思思久99久女女精品| 国产 精品 自在 线免费| 免费吃奶摸下激烈视频| 亚洲AV日韩精品久久久久| 无码AV动漫精品一区二区免费| 不卡乱辈伦在线看中文字幕| 男人的天堂av一二三区| 偷拍精品一区二区三区 | 91高清免费国产自产拍| 18禁免费无码无遮挡不卡网站| 国产日产亚洲系列av| 中国产无码一区二区三区| 久久zyz资源站无码中文动漫| 免费A级毛片樱桃视频| 国产一区二区不卡91| 国产偷自视频区视频| 中文字幕免费一二三区乱码 | 神池县| 亚洲精品无码av天堂| 中文字幕日韩精品国产| 久久精品国产精品亚洲| 富民县| 中文字幕日韩一区二区不卡 | 成人亚欧欧美激情在线观看| 国产极品美女高潮抽搐免费网站| 伊人成色综合人夜夜久久| 蜜桃av多人一区二区三区| 国产999久久高清免费观看| 鄱阳县| 一本色道久久88亚洲综合| 高邮市| 亚洲精品www久久久久久| 久久综合综合久久综合| 亚洲人妻一区二区精品| 国产a在视频线精品视频下载|