//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里构造注入
仅供学习参考,如有侵权联系我删除