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










