首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Scrutor实现寄存器接口组件

使用Scrutor实现寄存器接口组件
EN

Stack Overflow用户
提问于 2022-04-03 11:00:46
回答 1查看 104关注 0票数 1

我正在使用Srutor8.1注册实现接口的程序集中的所有类型(ASP.NET核心6)。

我有一个类似于以下代码结构的代码结构(为了简洁起见,省略了所有类型成员):

代码语言:javascript
复制
services.AddSingleton(typeof(IRepository<>), typeof(Repository<>));

我在program.cs中使用这段代码

代码语言:javascript
复制
builder.Services.Scan(scan => scan
        .FromAssemblies(Assembly.GetExecutingAssembly())
        .FromAssemblyOf<IUnitOfEntity>()
        .AddClasses()
        .UsingRegistrationStrategy(RegistrationStrategy.Skip)
        .AsMatchingInterface()
        .WithTransientLifetime());

但我知道这个错误:

一些服务无法构造(在验证服务描述符的ServiceType时出错:

Microsoft.AspNetCore.Authorization.IAuthorizationService生命周期:瞬态ImplementationType:

Microsoft.AspNetCore.Authorization.DefaultAuthorizationService':在试图激活‘TIR.NetCore.BaseLoginService’时无法解析“TIR.NetCore.IUnitOfEntity”类型的服务。)(验证服务描述符‘ServiceType时出错:

Microsoft.AspNetCore.Authorization.IAuthorizationHandlerProvider生命周期:瞬态ImplementationType:

Microsoft.AspNetCore.Authorization.DefaultAuthorizationHandlerProvider':

在试图激活‘TIR.NetCore.BaseLoginService’时,无法解析“TIR.NetCore.IUnitOfEntity”类型的服务。)(验证服务描述符‘ServiceType时出错:

Microsoft.AspNetCore.Authorization.Policy.IPolicyEvaluator生命周期:瞬态ImplementationType:

Microsoft.AspNetCore.Authorization.Policy.PolicyEvaluator':在试图激活'TIR.NetCore.BaseLoginService'.)时无法解析“TIR.NetCore.IUnitOfEntity”类型的服务

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-04 09:40:23

FromAssemblyOf<>FromAssembliesOf -扫描包含提供的TypeTypes的程序集。

AddClasses() -添加所有公共的、非抽象的类。

AddClasses(publicOnly) -添加所有非抽象类。将publicOnly=false设置为添加内部/私有嵌套类。

AddClass(predicate) -运行一个任意的操作来筛选哪些类包括。这是非常有用和广泛使用的,如下所示。

AddClasses(predicate, publicOnly) -前两种方法的组合。

因此,您可以更改代码如下:

代码语言:javascript
复制
builder.Services.Scan(scan => scan
    .FromAssemblyOf<ITest>()
    .AddClasses(classes => classes.AssignableTo<ITest>())
    .UsingRegistrationStrategy(RegistrationStrategy.Skip)
    .AsImplementedInterfaces()
    .WithTransientLifetime());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71725268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档