Ни один из конструкторов, найденных с «Autofac.Core.Activators.Reflection.DefaultConstructorFinder» по типу «LMS.Services.Security.EncryptionService 'может быть вызван с помощью имеющихся услуг и параметров: не удается разрешить параметр „LMS.Models.SecuritySettings securitySettings“ конструктора „Пустота .ctor (LMS.Models.SecuritySettings)“Autofac Ни один из конструкторов, найденных с «Autofac.Core.Activators.Reflection.DefaultConstructorFinder»
Ниже приведены кодовые файлы
Класс обслуживания
public class EncryptionService : IEncryptionService
{
private readonly SecuritySettings _securitySettings;
public EncryptionService(SecuritySettings securitySettings)
{
this._securitySettings = securitySettings;
}
}
Bootstrapper
private static void SetAutofacContainer()
{
var builder = new ContainerBuilder();
builder.RegisterControllers(Assembly.GetExecutingAssembly());
builder.RegisterType<UnitOfWork>().As<IUnitOfWork>().InstancePerRequest();
builder.RegisterType<DatabaseFactory>().As<IDatabaseFactory>().InstancePerRequest();
builder.RegisterAssemblyTypes(typeof(CourseRepository).Assembly)
.Where(t => t.Name.EndsWith("Repository"))
.AsImplementedInterfaces()
.InstancePerRequest();
builder.RegisterAssemblyTypes(typeof(CourseService).Assembly)
.Where(t => t.Name.EndsWith("Service"))
.AsImplementedInterfaces()
.InstancePerRequest();
builder.RegisterFilterProvider();
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
Он работал раньше. Но когда я представил реализацию EncryptionService
, я получаю ошибку выше. Вот другая рабочая реализация кода следующим образом
public class CourseService : ICourseService
{
#region Fields
private readonly IRepository<Course> _courseRepository;
private readonly IUnitOfWork _unitOfWork;
#endregion
#region ctor
public CourseService(IRepository<Course> courseRepository, IUnitOfWork unitOfWork)
{
_courseRepository = courseRepository;
_unitOfWork = unitOfWork;
}
#endregion
}
Большое спасибо Кирилл Дюран. Он работает сейчас. – pbhalchandra