c# – 将配置绑定到.NET Core 2.0中的对象图

前端之家收集整理的这篇文章主要介绍了c# – 将配置绑定到.NET Core 2.0中的对象图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在制作.NET Core 2.0应用程序,我需要对其进行配置.我正在看 this documentation,似乎在.NET Core 1.0中你可以做到:
var appConfig = new AppSettings();
config.GetSection("App").Bind(appConfig);

在.NET Core 1.1中,您可以:

var appConfig = config.GetSection("App").Get<AppSettings>();

但在.NET Core 2.0中既不存在Bind也不存在.实现这一目标的新方法是什么?

谢谢,

玩笑

解决方法

你仍然可以做这两件事.由于您处于控制台应用程序中,并且因此可能不使用ASP.NET Core元数据包,因此您需要确保具有正确的依赖项.

要将配置绑定到对象,您需要Microsoft.Extensions.Configuration.Binder包.然后,两种@R_301_463@案都应该正常工作.

顺便说一句.即使您在控制台应用程序中,您仍然可以使用ASP.NET Core附带的依赖注入容器.我个人发现设置起来非常简单,所以如果你仍然可以修改你的应用程序来使用它,那么它可能是值得的.设置将如下所示:

var configuration = new ConfigurationBuilder()
    .AddJsonFile("config.json",optional: false)
    .Build();

var services = new ServiceCollection();
services.AddOptions();

// add your services here
services.AddTransient<MyService>();
services.AddTransient<Program>();

// configure options
services.Configure<AppSettings>(configuration.GetSection("App"));

// build service provider
var serviceProvider = services.BuildServiceProvider();

// retrieve main application instance and run the program
var program = serviceProvider.GetService<Program>();
program.Run();

然后,所有注册的服务都可以像在ASP.NET Core中一样使用依赖项.然后,要使用您的配置,您可以注入IOptions< AppSettings>通常类型.

猜你在找的.NET Core相关文章