在 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 'IRepository
1'.'
Autofac 中有一个用于开放泛型的特殊方法RegisterGeneric
:
builder.RegisterGeneric(typeof(Repository<>))
.As(typeof(IRepository<>))
.InstancePerLifetimeScope();
出于各种原因,我们需要在我们的图书馆中使用 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 'Repository
1[T]' is not assignable to service 'IRepository
1'.'
Autofac 中有一个用于开放泛型的特殊方法RegisterGeneric
:
builder.RegisterGeneric(typeof(Repository<>))
.As(typeof(IRepository<>))
.InstancePerLifetimeScope();