Asp.net Core supports for dependency injection by default, you can easily register your services like the following code snippet in Startup class:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<IMembershipData, MembershipData>();
}
}
Now if you want to register your services in a different class library rather than asp.net core project, in a layered architecture, as you know many DI containers support for modular resolving; we have the same capability in asp.net core:
public static class DIContainer
{
public static IServiceCollection AddDependencyInjectionServices(this IServiceCollection services)
{
services.AddScoped<ILogData, LogData>();
services.AddScoped<IMembershipData, MembershipData>();
services.AddScoped<INotificationData, NotificationData>();
return services;
}
}
And you can easily register the class above in you Startup class:
public void ConfigureServices(IServiceCollection services)
{
services.AddDependencyInjectionServices();
}