Ali*_*igy 12 c# configuration .net-core
我正在尝试将 appsettings.json 转换为 C# 类
我用来Microsoft.Extensions.Configuration从 appsettings.json 读取配置
我使用反射编写以下代码,但我正在寻找更好的解决方案
foreach (var (key, value) in configuration.AsEnumerable())
{
var property = Settings.GetType().GetProperty(key);
if (property == null) continue;
object obj = value;
if (property.PropertyType.FullName == typeof(int).FullName)
obj = int.Parse(value);
if (property.PropertyType.FullName == typeof(long).FullName)
obj = long.Parse(value);
property.SetValue(Settings, obj);
}
Run Code Online (Sandbox Code Playgroud)
Ser*_*kiy 20
从appsettings.json文件构建配置:
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional = false)
.Build()
Run Code Online (Sandbox Code Playgroud)
然后添加Microsoft.Extensions.Configuration.Binder nuget 包。您将拥有将配置(或配置部分)绑定到现有或新对象的扩展。
例如,您有一个设置类(顺便说一句,按照惯例,它称为选项)
public class Settings
{
public string Foo { get; set; }
public int Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和appsettings.json
{
"Foo": "Bob",
"Bar": 42
}
Run Code Online (Sandbox Code Playgroud)
要将配置绑定到新对象,您可以使用Get<T>()扩展方法:
var settings = config.Get<Settings>();
Run Code Online (Sandbox Code Playgroud)
要绑定到现有对象,您可以使用Bind(obj):
var settings = new Settings();
config.Bind(settings);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13740 次 |
| 最近记录: |