在 Autofac 中注册开放通用类型

Registering an open-generic type in Autofac

出于各种原因,我们需要在我们的图书馆中使用 Autofac。我们目前正在使用 Structuremap,但无法将以下内容转换为 Autofac

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

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

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

并收到以下错误

System.ArgumentException: 'The type 'Repository1[T]' is not assignable to service 'IRepository1'.'

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

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