首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Asp.net核中使用Scrutor解析和注册服务

在Asp.net核中使用Scrutor解析和注册服务
EN

Stack Overflow用户
提问于 2022-11-19 18:29:52
回答 4查看 49关注 0票数 0

我在我的应用程序中有一个界面(IDomainService)和一个(很多),我用它标记了更多的接口(IProductionLineTitleDuplicationChecker),就像你在其他程序中看到的那样:

代码语言:javascript
复制
public interface IDomainService
    {

    }
代码语言:javascript
复制
public interface IProductionLineTitleDuplicationChecker : IDomainService
    {
        ///
    }

其实施方式如下:

代码语言:javascript
复制
public class ProductionLineTitleDuplicationChecker : IProductionLineTitleDuplicationChecker
    {
        private readonly IProductionLineRepository _productionLineRepository;

        public ProductionLineTitleDuplicationChecker(IProductionLineRepository productionLineRepository)
        {
            _productionLineRepository = productionLineRepository;
        }

        public bool IsDuplicated(string productionLineTitle)
        {
            ///
        }
    }

现在,我使用内置的DI-容器解析和注册服务,但是我想要更改它,而使用滤过器。

如何使用服务解析和注册授权器?

EN

回答 4

Stack Overflow用户

发布于 2022-11-19 18:47:44

您只需利用Scrutor扩展方法来实现Microsoft.Extensions.DependencyInjection.IServiceCollection。在你的Startup.cs

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection serviceCollection)
{
    serviceCollection
        .Scan(x => x.FromAssemblyOf<ProductionLineTitleDuplicationChecker>()
            .AddClasses()
            .AsImplementedInterfaces()
            .WithTransientLifetime());
}
票数 0
EN

Stack Overflow用户

发布于 2022-11-21 08:39:21

我认为您的情况与this post是一致的,请尝试使用下面的方式:

代码语言:javascript
复制
services.Scan(scan => scan
    .FromAssemblyOf<IProductionLineTitleDuplicationChecker>()
    .AddClasses(classes => classes
        .AssignableTo<IProductionLineTitleDuplicationChecker>())
.AsImplementedInterfaces()
.WithScopedLifetime());
票数 0
EN

Stack Overflow用户

发布于 2022-11-29 20:08:50

我觉得这应该管用

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection serviceCollection)
{
    services.Scan(scan => scan
        .FromAssemblyOf<IProductionLineTitleDuplicationChecker>()
        .AddClasses(classes => classes.AssignableTo<IDomainService>())
            .AsImplementedInterfaces()
            .WithScopedLifetime());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74502598

复制
相关文章

相似问题

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