首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ASP.NET核心中自动配置服务?

如何在ASP.NET核心中自动配置服务?
EN

Stack Overflow用户
提问于 2021-05-19 09:20:07
回答 1查看 940关注 0票数 1

我想改变我的启动类,以扫描系统中实现接口的所有类,然后自动注册它们。我用斯克鲁特只是为了让生活更轻松。

通常,使用类似于以下代码的代码可以很简单地实现这一点:

代码语言:javascript
复制
services.Scan(scan => scan
    .FromAssemblyOf<ISomething>()
    .AddClasses()
    .AsImplementedInterfaces()
    .WithTransientLifetime());

我的问题是我不能用选项模式来做这件事。

在我的创业公司里,我通常会有这样的事情:

代码语言:javascript
复制
services.Configure<GatewaySettings>(
    options => _config.GetSection(nameof(GatewaySettings)).Bind(options));

它允许我将类注入到如下构造函数中:

代码语言:javascript
复制
public Something( IOptions<GatewaySettings> myOptions)
{
   use(myOptions.Value);
}

是否有一种方法(使用Scrutor很好,但我愿意接受其他建议)来注册我的所有选项-类。我可以通过命名约定或用一个空接口来装饰它们,从而在代码库中很容易地识别它们。我的问题是,我不知道如何用扫描的类调用"services.Configure()“。

我正在有效地寻找实现这一目标的方法:

代码语言:javascript
复制
services.Configure(, myScannedType,
    options => _config.GetSection(myScannedType.GetName()).Bind(options));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-19 16:23:27

您可以使用雷普托库注册所有应用程序设置自动。

使用:

代码语言:javascript
复制
[Options("GatewaySettings")]
public class GatewaySettings
{
    //your properties
}

登记服务

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddReguto();
    services.ConfigureReguto(Configuration);
}

努基特

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67600368

复制
相关文章

相似问题

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