繁体   English   中英

将其他通用类型注册为已扫描

[英]Registering a different generic type as scanned

我尝试通过接口IRepository<T>注册通用类型Repository<T> ,其中TIEntity

builder.RegisterAssemblyTypes(assemblies)
       .Where(t => typeof(IEntity).IsAssignableFrom(t))
       .WithMetadata("Type", (t) => t)
       .AsImplementedInterfaces()
       .InstancePerLifetimeScope();

现在的问题是如何为找到我的课程的每个IEntity注册

Repository<T>: IRepository<T> where T: IEntity

实际上,您不需要注册实体,只需要注册存储库。 Autofac对开放式和封闭式泛型都有出色的支持。 OpenGenerics文档中,注册存储库的开放通用类型:

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

现在,您可以解析封闭的存储库类型,如下所示:

var userRepo = container.Resolve<IRepository<User>>();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM