加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:39:00 所属栏目:百科 来源:网络整理
导读:我正在制作.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.
我正在制作.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包.然后,两种解决方案都应该正常工作.

顺便说一句.即使您在控制台应用程序中,您仍然可以使用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>通常类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读