首页 > 解决方案 > 错误 CS1503 - 无法从 Microsoft.Extensions.Configuration.IConfigurationSection 转换为 System.Action<>

问题描述

我收到一个错误:

错误 CS1503 参数 2:无法从 'Microsoft.Extensions.Configuration.IConfigurationSection' 转换为 'System.Action<>

当我使用带有 Bind() 的配置时,它正在工作。

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

但是使用下面的代码,我得到了上述错误。

我尝试了博客和其他论坛中建议的许多解决方案,例如 -从 .net 核心中的 appsettings.json 获取价值

但仍然是同样的错误。我错过了什么吗??

我有以下东西: appsettings.json

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

BandSettings.cs

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

测试助手.cs

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
}

标签: c#.netasp.net-corec#-4.0.net-core

解决方案


添加 NuGet 包Microsoft.Extensions.Options.ConfigurationExtensions以获取扩展方法,其中

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

将工作。

参考:https ://github.com/dotnet/AspNetCore.Docs/issues/18833


推荐阅读