在使用.net core时,依赖注入,主要使用通过构造函数注入。小编将通过扩展方式,实现在类中各个地方可以控制反转,获取实例。
1、首先自定义扩展类
using Microsoft.AspNetCore.Builder;
using System;
namespace Microsoft.Extensions.DependencyInjection
{
public static class DI
{
public static IServiceCollection Services { get; set; }
public static IServiceProvider ServiceProvider { get; set; }
}
public static class Extensions
{
public static IServiceCollection AddTfDI(this IServiceCollection services)
{
DI.Services = services;
return services;
}
public static IApplicationBuilder UseTfDI(this IApplicationBuilder builder)
{
DI.ServiceProvider = builder.ApplicationServices;
return builder;
}
}
}
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 注入方式的控制反转。
更多精彩文章请关注我们的微信公众号FocusDotCore: