.net6怎样注册服务,配置服务,使用服务?services.confgure方法是干啥的?

.Net6要使用一个服务(有时候是自己编写的类或服务),一般来说需要3个过程:

1.注册→2.配置→3.使用

举个例子,我们要想使用Swagger就必须按照这三个过程:

//1.注册服务
builder.Services.AddSwaggerGen();
//2.配置服务
builder.Services.ConfigureSwaggerGen(option => {//配置内容 });
var app = builder.Build();
//3.使用服务
app.UseSwagger();
app.UseSwaggerUI();

第一步的注册服务实际上就是实例化或者依赖注入DI,我们自己写的类也需要直接依赖注入到IServiceCollection中。

第二步实际上就是载入一些配置选项参数,这些参数可能在配置文件中,也可能直接写入程序代码中。

第三步就开始直接使用服务了。

当然你现在可能要问,我再用一些中间件时,并没有遇到这个情况啊,没有3步,只需要add就行了,比如NLog或Log4Net,就一句话:

builder.Logging.AddNLog("CfgFile/NLog.config");
builder.Logging.AddLog4Net("CfgFile/Log4Net.config");

但是你看一下代码就明白里面是啥样的了,翻看后台代码如下:

public static ILoggingBuilder AddLog4Net(this ILoggingBuilder builder, string log4NetConfigFile)
        {
            Log4NetProviderOptions options = new Log4NetProviderOptions(log4NetConfigFile);
            return builder.AddLog4Net(options);
        }

而这个ILoggingBuilder 的定义是:

// 摘要:
// An interface for configuring logging providers.
public interface ILoggingBuilder
{
    // 摘要:
    //Gets the Microsoft.Extensions.DependencyInjection.IServiceCollection where Logging
    //services are configured.
    IServiceCollection Services { get; }
}

这就很明显了,options是实例化,而读取CfgFile/NLog.config配置文件就是配置服务,最后实现ILoggingBuilder是为了添加实例化的对象从而使用这个服务。还是老套路,

1.注册(实例化或依赖注入),IServiceCollection作为依赖注入容器,将服务注入到容器中。

2.配置(载入配置文件或写入程序),需要实现IServiceCollection的configure方法,配置容器中的服务。

3.使用服务,有时候也可以在这里配置一下服务。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值