国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

在.NET Core控制臺程序中如何使用依賴注入詳解

來源:懂視網 責編:小采 時間:2020-11-27 22:34:45
文檔

在.NET Core控制臺程序中如何使用依賴注入詳解

在.NET Core控制臺程序中如何使用依賴注入詳解:背景介紹 Dependency Injection:又稱依賴注入,簡稱DI。在以前的開發方式中,層與層之間、類與類之間都是通過new一個對方的實例進行相互調用,這樣在開發過程中有一個好處,可以清晰的知道在使用哪個具體的實現。隨著軟件體積越來越龐大,邏輯越來越復雜,
推薦度:
導讀在.NET Core控制臺程序中如何使用依賴注入詳解:背景介紹 Dependency Injection:又稱依賴注入,簡稱DI。在以前的開發方式中,層與層之間、類與類之間都是通過new一個對方的實例進行相互調用,這樣在開發過程中有一個好處,可以清晰的知道在使用哪個具體的實現。隨著軟件體積越來越龐大,邏輯越來越復雜,

使用第三方依賴注入

除了使用內置的依賴注入模塊,我們還可以直接使用一些第三方的依賴注入框架,例如Autofac, StructureMap。

這里我們來使用StructureMap來替換當前的內置的依賴注入框架。

首先我們需要先添加程序集引用。

PM> Install-Package StructureMap.Microsoft.DependencyInjection

然后我們來修改Program.cs文件,代碼如下

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using StructureMap;
using System;

namespace DIInConsoleApp
{
 class Program
 {
 static void Main(string[] args)
 {
 var services = new ServiceCollection().AddLogging();

 var container = new Container();
 container.Configure(config =>
 {
 config.Scan(_ =>
 {
 _.AssemblyContainingType(typeof(Program));
 _.WithDefaultConventions();
 });

 config.Populate(services);
 });

 var serviceProvider = container.GetInstance<IServiceProvider>();

 serviceProvider.GetService<ILoggerFactory>().AddConsole(LogLevel.Debug);

 var logger = serviceProvider.GetService<ILoggerFactory>().CreateLogger<Program>();
 logger.LogInformation("Start application.");

 var bar = serviceProvider.GetService<IBarService>();
 bar.DoSomeRealWork();

 logger.LogInformation("All done!");
 Console.Read();
 }
 }
}

代碼解釋

  • 這里我們實例化了一個StructureMap的服務容器Container, 并在其Configure方法中配置了接口類及其實現類的自動搜索。這里使用的是一種約定,接口類必須以字母“I”開頭, 實現類的名字和接口類只相差一個字母“I”, 例IFooService, FooService, IBarService, BarService
  • 后續代碼和前一個例子基本一樣。雖然看起來代碼多了很多,但是實際上這種使用約定的注入方式非常強力,可以省去很多手動配置的代碼。
  • 最終效果

    運行程序,代碼和之前的效果一樣

    info: DIInConsoleApp.Program[0]
          Start application.
    info: DIInConsoleApp.FooService[0]
          Doing the thing 0
    info: DIInConsoleApp.FooService[0]
          Doing the thing 1
    info: DIInConsoleApp.FooService[0]
          Doing the thing 2
    info: DIInConsoleApp.FooService[0]
          Doing the thing 3
    info: DIInConsoleApp.FooService[0]
          Doing the thing 4
    info: DIInConsoleApp.FooService[0]
          Doing the thing 5
    info: DIInConsoleApp.FooService[0]
          Doing the thing 6
    info: DIInConsoleApp.FooService[0]
          Doing the thing 7
    info: DIInConsoleApp.FooService[0]
          Doing the thing 8
    info: DIInConsoleApp.FooService[0]
          Doing the thing 9
    info: DIInConsoleApp.Program[0]
          All done!

    本篇源代碼 (本地下載)

    總結

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    在.NET Core控制臺程序中如何使用依賴注入詳解

    在.NET Core控制臺程序中如何使用依賴注入詳解:背景介紹 Dependency Injection:又稱依賴注入,簡稱DI。在以前的開發方式中,層與層之間、類與類之間都是通過new一個對方的實例進行相互調用,這樣在開發過程中有一個好處,可以清晰的知道在使用哪個具體的實現。隨著軟件體積越來越龐大,邏輯越來越復雜,
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 一边摸一边爽一边叫床免费视频 | 国产在线一区二区三区 | 国产一区精品 | 91精品一区二区三区在线观看 | 中文字幕日韩一区二区三区不卡 | 波多野结衣系列在线观看 | 美女网站全黄 | 国产精品免费视频网站 | 成人a毛片久久免费播放 | 久久精品国产免费一区 | 欧美日韩亚洲一区二区 | 国产不卡一区二区三区免费视 | 国产一区二区三区免费 | 亚洲综合小说 | 欧美日韩中 | 明星国产欧美日韩在线观看 | 一区二区视频在线播放 | 亚洲一区 中文字幕 | 美女一级毛片免费观看 | 国产精品网站在线观看 | 在线观看免费精品国产 | 伊人网伊人影院 | 免费一区二区三区在线视频 | 亚洲色图第1页 | 日韩一区二区在线免费观看 | 91精品国产亚一区二区三区 | 国产精彩视频 | 欧美久久天天综合香蕉伊 | 亚洲色图欧美一区 | 最新色视频 | 一级全黄60分钟免费网站 | 精品国产一区二区三区在线观看 | 欧日韩一区二区三区 | 在线日韩欧美一区二区三区 | 一级免费a | 亚欧一区 | 久久96国产精品久久久 | 欧美xxx在线 | 五月婷婷综合网 | 日韩欧美精品 | 精品一区二区三区四区五区六区 |