2017-02-09 5 views
2

인 생성자가 없습니다.이 문제에 대한 많은 질문을 읽었지 만 구현 문제는 무엇인지 알 수 없습니다.'Autofac.Core.Activators.Reflection.DefaultConstructorFinder'유형이

나는 다음과 같은 예외를 얻고있다 : 유형에 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' 'SampleAuthTemplate.Domain.Entities.Core.Repositories.Concrete.EntityRepository` 발견 생성자의

없음 1 [SampleAuthTemplate.Domain.Entities.Order] '는 사용 가능한 서비스 및 매개 변수를 사용하여 호출 할 수 있습니다. ↵ canAnnConstructor'매개 변수 'SampleAuthTemplate.Domain.Entities.Core.EntitiesContext entitiesContext' 'constructor'Void .ctor (SampleAuthTemplate.Domain.Entities .Core.EntitiesContext) '. "

됩니다 다음은 AutoFac 등록 :

private static IContainer RegisterServices(ContainerBuilder builder) 
     { 
      builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); 
      // registration goes here 
      builder.RegisterType<EntitiesContext>().As<IdentityDbContext<ApplicationUser>>().InstancePerApiRequest(); 
      builder.RegisterGeneric(typeof(EntityRepository<>)).As(typeof(IEntityRepository<>)).InstancePerApiRequest(); 
      //builder.RegisterGeneric(typeof(AuthRepository<>)).As(typeof(IAuthRepository<>)).InstancePerApiRequest(); 

      builder.RegisterType<AuthRepository>().As<IAuthRepository>().InstancePerApiRequest(); 

      builder.RegisterType<OrderService>().As<IOrderService>().InstancePerApiRequest(); 
      return builder.Build(); 
     } 

및 EntitiesContext 클래스 :

public class EntitiesContext : IdentityDbContext<ApplicationUser> 
    { 
     public EntitiesContext(): base("SampleApp") 
     { 
     } 

     public IDbSet<Order> Orders {get;set;} 
     public IDbSet<OrderDetail> OrderDetails { get; set; } 
    } 

나를 인도 해주십시오.

감사합니다.

답변

3

주사 부위에는 이 필요하지만 IdentityDbContext<ApplicationUser>에 등록해야합니다.

이 시도 :

builder.RegisterType<EntitiesContext>().AsSelf() 
      .As<IdentityDbContext<ApplicationUser>>().InstancePerApiRequest();