//startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme)
.AddAzureADBearer(options => Configuration.Bind("AzureAd", options));
services.AddHttpContextAccessor();
services.AddTransient<HttpContextAccessor>();
//Register class for DI
services.UseCustomServices();
services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "RestfulApi", Version = "v1" });
});
}
//webcommon注入扩展方法
namespace RestfulApi.WebCommon
{
public static class CustomServicesExtensions
{
public static IServiceCollection UseCustomServices(this IServiceCollection services)
{
var assembliesToScan = new[] {
Assembly.GetExecutingAssembly(),
Assembly.GetAssembly(typeof(MyNumberService))
};
services.RegisterAssemblyPublicNonGenericClasses(assembliesToScan)
.Where(c => c.Name.EndsWith("Service"))
.AsPublicImplementedInterfaces(ServiceLifetime.Scoped);
services.AddScoped<MyNumberService>();
return services;
}
}
}
引用包:
controller里构造注入
方式二:
依赖注入的好处就是低耦合也可以说是少写了重复的代码
构造函数依赖注入分为三步:
1、先创建一个接口
2、创建一个类,用于实现接口
3、到配置服务类(Startup)的 public void ConfigureServices(IServiceCollection services){ } 方法中注册,注册方式有 addSingleton() addTransient() addScoped() 三种
例如:services.AddSingleton<接口名, 实现类 类名>();
之后就可以在写接口的时候通过构造函数引用了
参考:asp.net core 构造函数依赖注入 - c_c-c - 博客园
仅供学习参考,如有侵权联系我删除