【发布时间】:2020-04-21 20:31:19
【问题描述】:
我收到一个错误:
错误 CS1503 参数 2:无法从 'Microsoft.Extensions.Configuration.IConfigurationSection' 转换为 'System.Action
当我使用带有 Bind() 的配置时,它正在工作。
var bandConfig = new BandSettings();
Configuration.GetSection("BandSettings").Bind(bandConfig );
但是使用下面的代码,我得到了上述错误。
我尝试了博客和其他论坛中建议的许多解决方案, 例如 - Getting value from appsettings.json in .net core
但仍然是同样的错误。我错过了什么吗??
我有以下事情: appsettings.json
"BandSettings":{
"UserID": "aTestUserID",
"Password" : "aTestPassword"
}
BandSettings.cs
public class BandWidthSettings
{
public string UserID { get; set; }
public string ApiToken { get; set; }
}
TestHelper.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
}
【问题讨论】:
-
不是吗:
services.Configure<BandSettings>(o => bandSettingsSection.Bind(o)); -
@ChiefTwoPencils 感谢您的评论。它与 Bind() 一起工作。但我不想和它一起使用 Bind()。
-
好的,但是您仍然需要处理
Configure寻找操作 (o => SomeVoidMethod()) 而不是配置部分。 -
谢谢@ChiefTwoPencils。我得到了它的工作。
标签: c# .net asp.net-core c#-4.0 .net-core