c# – 当它只有一个具体的时候,如何让简单的注入器自动解析接口
发布时间:2020-12-15 23:44:35 所属栏目:百科 来源:网络整理
导读:目前我有一个webapi控制器,其构造函数如下: readonly IQueryFactory queryFactory;readonly ICommandFactory commandFactory;public UserBenefitsController( IQueryFactory queryFactory,ICommandFactory commandFactory){ this.queryFactory = queryFacto
目前我有一个webapi控制器,其构造函数如下:
readonly IQueryFactory queryFactory; readonly ICommandFactory commandFactory; public UserBenefitsController( IQueryFactory queryFactory,ICommandFactory commandFactory) { this.queryFactory = queryFactory; this.commandFactory = commandFactory; } 我使用简单的注入器来注册这两种类型. container.RegisterWebApiRequest<IQueryFactory,QueryFactory>(); container.RegisterWebApiRequest<ICommandFactory,CommandFactory>(); 但我发现,随着我继续开发我的应用程序,我继续有很多ISomeInterface以1:1的比例解析为ISomeConcrete. 是否有可能告诉简单的注入器在接口处查找并在WebApiRequest范围内只有1个具体的情况下自动解析它? 解决方法
您可以使用批处理/自动注册来解析具体实例.
Simple Injector文档解释了它 here 例如: ScopedLifestyle scopedLifestyle = new WebApiRequestLifestyle(); var assembly = typeof(YourRepository).Assembly; var registrations = from type in assembly.GetExportedTypes() where type.Namespace == "Acme.YourRepositories" where type.GetInterfaces().Any() select new { Service = type.GetInterfaces().Single(),Implementation = type }; foreach (var reg in registrations) container.Register(reg.Service,reg.Implementation,scopedLifestyle); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |