Class 库没有 Program.cs - 去哪里配置 DI?
Class library has no Program.cs - where to configure DI?
我开始了一个新的 class 库项目,我想对服务和 DbContext
等使用依赖注入
但是没有 Program.cs
文件。
我应该在哪里配置 DI 接口和 classes?我需要添加一个空的 Program.cs
吗?
用于整个 application.Main 应用程序的依赖项注入向所有程序集注入服务。例如,从主应用程序到您的 assembly.You 的 dbcontext 注入不应在本地单独为每个程序集定义依赖实例
例如,如果您有一个 class 库作为业务访问层。您可以在根目录中添加一个名为 DependencyInjection 的 class,如下所示
public static class DependencyInjection
{
public static void AddApplication(this IServiceCollection service)
{
service.AddScoped<IOrgSettingsService, OrgSettingsService>();
service.AddScoped<IIdentity, IdentityService>();
service.AddScoped<ILdapAuthenticationService, LdapAuthenticationService>();
service.AddScoped<IOrgAuthenticationService, OrgAuthenticationService>();
service.AddScoped<IVacanciesService, VacancyService>();
// assemblers
service.AddScoped<IVacancyAssembler, VacancyAssembler>();
}
}
然后在启动class中注册如下
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddApplication();
}
我开始了一个新的 class 库项目,我想对服务和 DbContext
等使用依赖注入
但是没有 Program.cs
文件。
我应该在哪里配置 DI 接口和 classes?我需要添加一个空的 Program.cs
吗?
用于整个 application.Main 应用程序的依赖项注入向所有程序集注入服务。例如,从主应用程序到您的 assembly.You 的 dbcontext 注入不应在本地单独为每个程序集定义依赖实例
例如,如果您有一个 class 库作为业务访问层。您可以在根目录中添加一个名为 DependencyInjection 的 class,如下所示
public static class DependencyInjection
{
public static void AddApplication(this IServiceCollection service)
{
service.AddScoped<IOrgSettingsService, OrgSettingsService>();
service.AddScoped<IIdentity, IdentityService>();
service.AddScoped<ILdapAuthenticationService, LdapAuthenticationService>();
service.AddScoped<IOrgAuthenticationService, OrgAuthenticationService>();
service.AddScoped<IVacanciesService, VacancyService>();
// assemblers
service.AddScoped<IVacancyAssembler, VacancyAssembler>();
}
}
然后在启动class中注册如下
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddApplication();
}