我正在尝试将我的appsettings.json文件绑定到我的AppSettings类。它适用于除"Microsoft.Hosting.Lifetime“之外的所有属性,因为我不知道如何在C#类中创建一个包含点的属性。
这是我的appsettings.json文件:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
...
}以下是AppSettings.cs:
using System;
using Microsoft.Extensions.Configuration;
namespace AMI.TBoard.LCTransfer
{
public class AppSettings
{
public Logging Logging { get; set; }
public ConnectionStrings ConnectionStrings { get; set; }
public FtpConnectionStrings FtpConnectionStrings { get; set; }
public void BindConfig(IConfiguration config)
{
config.Bind(this);
}
}
public class Logging
{
public LogLevel LogLevel { get; set; }
}
public class LogLevel
{
public string Default { get; set; }
public string Microsoft { get; set; }
}
public class ConnectionStrings
{
public string appDbConnection { get; set; }
}
public class FtpConnectionStrings
{
public string url { get; set; }
public string username { get; set; }
public string password { get; set; }
public string exportFolder { get; set; }
public string importFolder { get; set; }
}
}注意,appsettings.json中的所有属性都以AppSettings.cs中的同名映射到属性上。嵌套属性绑定到嵌套类(出于明显的原因,我没有在appsettings.json中显示连接字符串属性,但它们确实存在)。
还请注意,没有绑定到"Microsoft.Hosting.Lifetime“。要将AppSettings.cs绑定到"Microsoft.Hosting.Lifetime“,我需要添加什么?
编辑:下面是我如何进行绑定的方法:
在program.cs中:
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
var appSettings = new AppSettings();
appSettings.BindConfig(config);在AppSettings中,您可以看到上面绑定配置的位置。
发布于 2022-01-26 06:15:33
private string _microsoftHostingLifetime;
public string MicrosoftHostingLifetime {
get
{
if (string.IsNullOrWhiteSpace(_microsoftHostingLifetime))
{
_microsoftHostingLifetime = Configuration["Logging:LogLevel:Microsoft.Hosting.Lifetime"];
}
return _microsoftHostingLifetime;
}
set
{
_microsoftHostingLifetime = value;
}
}我是这样做的
https://stackoverflow.com/questions/66412699
复制相似问题