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';找到任何构造函数
 
				
         
 
            
        基础教程推荐
- JSON.NET 中基于属性的类型解析 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
 
    	 
    	 
    	 
    	 
    	 
    	 
    	 
    	 
						 
						 
						 
						 
						 
				 
				 
				 
				