在Autofac中注册打开的泛型类型



由于各种原因,我们需要在其中一个库中使用Autofac。我们目前正在使用Structuremap,在将以下内容转换为Autofac 时遇到问题

For(typeof(Data.New.IRepository<>)).Use(typeof(Data.New.Repository<>));

我们正在Autofac 中尝试以下操作

builder.RegisterType(typeof(Repository<>)).As(typeof(IRepository<>));

并接收到以下错误

系统。ArgumentException:"类型"Repository1[T]' is not assignable to service 'IRepository1"。">

在Autofac中有一个用于开放泛型的特殊方法RegisterGeneric

builder.RegisterGeneric(typeof(Repository<>))
.As(typeof(IRepository<>))
.InstancePerLifetimeScope();

最新更新