.net core 依賴注入擴展,實現隨處控制反轉


在使用.net core時,依賴注入,主要使用通過構造函數注入。小編將通過擴展方式,實現在類中各個地方可以控制反轉,獲取實例。

1、首先自定義擴展類

  1. using Microsoft.AspNetCore.Builder;

  2. using System;

  3. namespace Microsoft.Extensions.DependencyInjection

  4. {

  5. public static class DI

  6. {

  7. public static IServiceCollection Services { get; set; }

  8. public static IServiceProvider ServiceProvider { get; set; }

  9. }

  10. public static class Extensions

  11. {

  12. public static IServiceCollection AddTfDI(this IServiceCollection services)

  13. {

  14. DI.Services = services;

  15. return services;

  16. }

  17. public static IApplicationBuilder UseTfDI(this IApplicationBuilder builder)

  18. {

  19. DI.ServiceProvider = builder.ApplicationServices;

  20. return builder;

  21. }

  22. }

  23. }

2.在startup.cs中的public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)中添加

app.UseTfDI();//依賴注入擴展方法

3.實例教你如何使用

假設我們在有一個依賴注入:

services.AddSingleton<IUploadHelper, UploadHelper>();

那么我們在其他需要調用的類中,就可以通過

var up = DI.ServiceProvider.GetRequiredService<IUploadHelper>(); //這樣即可以獲得實例

很簡單吧,說明一下,在.net core2中,通過該 方法暫不支持services.AddScoped 注入方式的控制反轉。

.net core 依賴注入擴展,實現隨處控制反轉

更多精彩文章請關注我們的微信公眾號FocusDotCore


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM