Autofac None of the constructors found with #39;Autofac.Core.Activators.Reflection.DefaultConstructorFinder#39;(Autofacc未使用#39;Autofac.Core.Activators.Reflection.DefaultConstructorFinder#39;找到任何构造函数)
问题描述
无法使用可用的服务和参数调用类型为‘LMS.Services.Security.EncryptionService’的带有‘Autofac.Core.Activators.Reflection.DefaultConstructorFinder’的构造函数: 无法解析构造函数"void.ctor(LMS.Models.SecuritySettings)"的参数""LMS.Models.SecuritySetting""
以下是代码文件
服务等级
public class EncryptionService : IEncryptionService
{
private readonly SecuritySettings _securitySettings;
public EncryptionService(SecuritySettings securitySettings)
{
this._securitySettings = securitySettings;
}
}
引导程序
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
}
推荐答案
当Autofac尝试解析EncryptionService
时,它尝试解析SecuritySettings
服务,但Autofac不知道此类注册。
SecuritySettings
实现。
例如:
builder.RegisterType<SecuritySettings>()
.As<SecuritySettings>();
这篇关于Autofacc未使用';Autofac.Core.Activators.Reflection.DefaultConstructorFinder';找到任何构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Autofacc未使用';Autofac.Core.Activators.Reflection.DefaultConstructorFinder';找到任何构造函数
基础教程推荐
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- 如何激活MC67中的红灯 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- c# Math.Sqrt 实现 2022-01-01