[英]How to I bind Microsoft.Hosting.Lifetime in my appsettings.json file to my AppSettings class in my C# application?
我正在尝试将我的 appsettings.json 文件绑定到我的 AppSettings class。 它适用于除“Microsoft.Hosting.Lifetime”之外的所有属性,只是因为我不知道如何在 C# class 中创建带有点的属性。
这是我的 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 map 中的所有属性都在 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 中,你可以看到我在哪里绑定了上面的配置。
private string _microsoftHostingLifetime;
public string MicrosoftHostingLifetime {
get
{
if (string.IsNullOrWhiteSpace(_microsoftHostingLifetime))
{
_microsoftHostingLifetime = Configuration["Logging:LogLevel:Microsoft.Hosting.Lifetime"];
}
return _microsoftHostingLifetime;
}
set
{
_microsoftHostingLifetime = value;
}
}
我这样处理
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.