C# 如何通过autofac注册继承的类和接口

C# 如何通过autofac注册继承的类和接口,c#,dependency-injection,autofac,C#,Dependency Injection,Autofac,我有一个场景,它迫使我从基本服务派生出一些服务类,以及一些数据访问类和接口。 这些是我的基本工作单元、接口和DAL注册表: public interface IUnitOfWork : IDisposable { } public class UnitOfWork: IUnitOfWork { protected override void OnModelCreating(DbModelBuilder modelBuilder) {

我有一个场景,它迫使我从基本服务派生出一些服务类,以及一些数据访问类和接口。 这些是我的基本工作单元、接口和DAL注册表:

 public interface IUnitOfWork : IDisposable
  {
  }

  public class UnitOfWork: IUnitOfWork
  {
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
        }   
  }


public class DalRegistery : IRegistery
{ 
        public void Register(ContainerBuilder builder)
        {
            builder.RegisterType<UnitOfWork>()
                .As<IUnitOfWork>()
                .As<DbContext>()
                .InstancePerLifetimeScope();
        }

}  
现在,我尝试注册childUnitOfwork,而不是注册UnitOfwork(基本工作单元),我编写了以下代码:

public class ChildDalRegistery : IRegistery
{
   public void Register(ContainerBuilder builder)
   {
       builder.RegisterType<ChildUnitOfWork>().As<IChildUnitOfWork>().As<DbContext>.InstancePerLifetimeScope();
   }
}
公共类childalRegistry:iRegistry
{
公共无效登记簿(集装箱建造商)
{
builder.RegisterType();
}
}
但它甚至不会调用我的childalRegistry,甚至应用程序也不会启动。Autofac中是否有注册派生成员的方法


注意:IRegistery是一个自定义接口,用于在application start中注册我的类。

能否在application start中显示代码?您如何使用
dalRegistry
childdalRegistry
?您的课程是否依赖于
IUnitOfWork
IChildUnitOfWork
?如果它们依赖于
IUnitOfWork
,那么您需要将
IUnitOfWork
映射到
childalRegistry
。我从iRegistry派生的所有类都收集在app start中,我想注册的是自己层中的UnitOfwork和ChildUnitOfWork(正如我提到的,ChildUnitOfWork是UnitOfwork的子级)
public class ChildDalRegistery : IRegistery
{
   public void Register(ContainerBuilder builder)
   {
       builder.RegisterType<ChildUnitOfWork>().As<IChildUnitOfWork>().As<DbContext>.InstancePerLifetimeScope();
   }
}