Пожалуйста, мой вопрос не может быть конструктивным, но я все еще учусь, поэтому любезно помогите.
Я проектирую 3-уровневую архитектуру с do tnet core 3.1 mvc, Visual Studio 2019. Я хочу использовать только одно подключение к базе данных на уровне доступа к данным и аутентифицировать пользователей, используя Identity из Бизнес логи c слой. То есть:
Строка подключения находится на уровне доступа к данным, и я хочу настроить службу через расширенный IServiceCollectionExtension.
public static class IServiceCollectionExtension
{
public static IServiceCollection AddDALDependenciesLibraries(this IServiceCollection services)
{
services.AddScoped<IUnitOfWork, UnitOfWork>();
services.AddScoped<ICoursesBL, CoursesBL>();
services.AddScoped<IStudentsBL, StudentBL>();
services.AddIdentity<IdentityUser, IdentityRole>).AddEntityFrameworkStores<GooddbContext>();
return services;
}
}
И запустить его в файле startup.cs, как
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContextPool<GooddbContext>(
options => options.UseSqlServer(Configuration.GetConnectionString("EmployeeDBConnection")));
services.AddDALDependenciesLibraries();
services.AddControllersWithViews();
}
Но если я запускаю приложение, оно выдает эту ошибку ниже:
System.AggregateException HResult = 0x80131500 Сообщение = Некоторые службы не могут быть созданы (Ошибка при проверке дескриптор службы 'ServiceType: TestCoreApp.BLL.BusinessLogi c .Interfaces.ICoursesBL Время жизни: область применения Тип реализации: TestCoreApp.BLL.BusinessLogi c .CoursesBL': невозможно разрешить службу для типа «AutoMapper.IMapper» при попытке активации 'TestCoreApp.BLL.BusinessLogi c .CoursesBL'.) (Ошибка при проверке дескриптора службы 'ServiceType: TestCoreApp.BLL.BusinessLogi c .Interfaces.IStudentsBL Срок службы: Тип реализации Scoped: TestCoreApp.BLL.BusinessLogi c. StudentBL ': невозможно разрешить службу для типа' AutoMapper.IMa pper 'при попытке активировать' TestCoreApp.BLL.BusinessLogi c .StudentBL '.) Source = Microsoft.Extensions.DependencyInjection StackTrace: в Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor (IEnumerable 1 serviceDescriptors, ServiceProviderOptions options)
at Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection services, ServiceProviderOptions options)
at Microsoft.Extensions.DependencyInjection.DefaultServiceProviderFactory.CreateServiceProvider(IServiceCollection containerBuilder)
at Microsoft.Extensions.Hosting.Internal.ServiceFactoryAdapter
1.CreateServiceProvider (Object containerBuilder) в Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider () в Microsoft.Extensions.Hosting.HostBuilder.Build () в TestCoreApp.UI.Program.Main (String [] args) в C: \ Users \ verky \ source \ repos \ TestCoreApp \ TestCoreApp.UI \ Program.cs: строка 16
Это исключение было первоначально сгенерировано в этом стеке вызовов:
Microsoft.Extensions.DependencyInjection. ServiceLookup.CallSiteFactory.CreateArgumentCallSites (System.Type, System.Type, Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain, System.REFlection.ParameterInfo [], bool) DependencyInjection.ServiceLook up.ResultCache, System.Type, System.Type, Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain) Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.TryCreateExact (Microsoft.Extensions.DependencyInyoror. DependencyInjection.ServiceLookup.CallSiteChain, Int) Microsoft.Extensions.DependencyInjection.ServiceDescriptor)
Внутреннее исключение 1:
InvalidOperationException: Ошибка при проверке дескриптора службы 'ServiceType: TestCoreApp.BLL.BusinessLogi c. Interfaces.ICoursesBL Время жизни: объем реализации, тип: TestCoreApp.BLL.BusinessLogi c .CoursesBL ': Una Чтобы разрешить службу для типа «AutoMapper.IMapper» при попытке активировать «TestCoreApp.BLL.BusinessLogi c .CoursesBL».
Внутреннее исключение 2:
InvalidOperationException: невозможно разрешить службу для типа «AutoMapper.IMapper» при попытке активировать «TestCoreApp.BLL.BusinessLogi c .CoursesBL».