Appsettings和中间件Core 2.1

时间:2018-11-19 14:58:21

标签: middleware asp.net-core-2.1 appsettings

我制作了一个自定义中间件,现在我想访问解决方案中另一个项目中的应用程序设置。我应该将IConfiguration对象注入到中间件构造函数中,并添加Microsoft.Extensions.Configuration的using语句吗?还是有更好的方法来做到这一点?

我正在使用带有Core 2.1的ASP.net网页。

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using System;
using System.Threading.Tasks;
public class MyMiddleware
{
  public IConfiguration _configuration;
  public MyMiddleware(RequestDelegate next, IConfiguration config)
  {
     _next = next;
     _ configuration = config;
  } 

1 个答案:

答案 0 :(得分:1)

如果您不需要将所有配置都传递给中间件,只需要将一部分传递给

Error: Could not find or load main class m.class

创建MyConfig.cs类文件:

class Foo(models.Model):
    GENDER_CHOICES = (
        ('M', 'Male'),
        ('F', 'Female'),
    )
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)

在Startup.cs的ConfigureServices方法中

IOptions<T>

在您的中间件中

public class MyConfig
{
   public string MyConfig1 {get; set;}
   public string MyConfig2 {get; set;}
}

在appsettings.json文件中:

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<MyConfig>(Configuration.GetSection("MyConfig"));
}