代码之家  ›  专栏  ›  技术社区  ›  born2Learn

错误CS1503-无法从转换Microsoft.Extensions.Configuration.IConfigurationSection到系统动作<>

  •  0
  • born2Learn  · 技术社区  · 5 年前

    我收到一个错误:

    当我使用Configure with Bind()时,它正在工作。

    var bandConfig = new BandSettings();
    Configuration.GetSection("BandSettings").Bind(bandConfig );
    

    但是通过下面的代码,我得到了上面的错误。

    我在博客和其他论坛上尝试了很多解决方案, 例如- Getting value from appsettings.json in .net core

    但还是同样的错误。我遗漏了什么吗??

    我有以下几点: 应用设置.json

    "BandSettings":{ 
    "UserID": "aTestUserID", 
    "Password" : "aTestPassword" 
    }
    

    波段设置.cs

    public class BandWidthSettings
    {
        public string UserID { get; set; }
        public string ApiToken { get; set; }
    }
    

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    
    public static IConfiguration GetTestConfiguration()
             => new ConfigurationBuilder()
                           .AddJsonFile("appsettings.json")
                           .Build();
    
    public IConfiguration Configuration { get; }
    
    public TestHelper(IConfiguration configuration)
    {
        Configuration = configuration;
    }
    public void ConfigureServices(IServiceCollection services)
    {
    
        var config = new BandSettings();
        var bandSettingsSection = Configuration.GetSection("BandSettings");
        services.Configure<BandSettings>(bandSettingsSection);  //Error is getting on this line - bandSettingsSection
    }
    
    0 回复  |  直到 5 年前
        1
  •  0
  •   born2Learn    5 年前
     public IConfiguration Configuration { get; }
            public TestHelper(IConfiguration configuration)
            {
                Configuration = configuration;
            }
    
            public void ConfigureServices(IServiceCollection services)
            {
                //Configure section binding  
                services.Configure<BandSettings>(Configuration.GetSection(BandSettings.SECTION));
            }
    
        2
  •  0
  •   Gabriel Molter    4 年前

    为设置创建POCO

    public class MySetting
    {
      public string Setting{ get; set; }
    }
    

    在启动时,它可以正常工作:

    services.Configure<MySetting>(Configuration.GetSection("MySetting"));
    

    private static void ConfigureServices(IServiceCollection services)
    {
      var mySection = configuration.GetSection("MySetting");
      services.Configure<MySetting>(c => mySection .Bind(c));
    }