由于各种原因,我们需要在其中一个库中使用Autofac。我们目前正在使用Structuremap,在将以下内容转换为Autofac 时遇到问题
For(typeof(Data.New.IRepository<>)).Use(typeof(Data.New.Repository<>));
我们正在Autofac 中尝试以下操作
builder.RegisterType(typeof(Repository<>)).As(typeof(IRepository<>));
并接收到以下错误
系统。ArgumentException:"类型"Repository
1[T]' is not assignable to service 'IRepository
1"。">
在Autofac中有一个用于开放泛型的特殊方法RegisterGeneric
:
builder.RegisterGeneric(typeof(Repository<>))
.As(typeof(IRepository<>))
.InstancePerLifetimeScope();