.netcore webapi 依赖注入service

阅读 88

2022-03-12

//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里构造注入

仅供学习参考,如有侵权联系我删除 

精彩评论(0)

0 0 举报