我有一个使用.NET Framework的控制台应用程序,现在想要升级到.NET 5,但是在需要从
关于配置工作方式的相关 文档非常有帮助,但所有示例都是控制台应用程序...直到你查看实际示例时才会发现它们完全没有帮助。它们都基于类似于以下代码块的
一个控制台应用程序并不是WinForms应用程序。应用程序代码不会在Main中“开始”;
app.config
获取数据的某些点上失败了。关于配置工作方式的相关 文档非常有帮助,但所有示例都是控制台应用程序...直到你查看实际示例时才会发现它们完全没有帮助。它们都基于类似于以下代码块的
Main
块: static async Task Main(string[] args)
{
using IHost host = CreateHostBuilder(args).Build();
// Application code should start here.
await host.RunAsync();
}
一个控制台应用程序并不是WinForms应用程序。应用程序代码不会在Main中“开始”;
Main
是您程序的主体,这意味着将使配置实际起作用的行放在方法末尾意味着它直到程序准备终止时才会被执行!您漏掉了什么?这些文档示例似乎完全没有意义。我不想托管任何服务;我只想让我的现有app.config
在启动时被读取并提供给配置系统,就像在.NET Framework中一样。如何以正确的方式恢复旧的行为?
HostBuilder
。只需按照@zaitsman的建议获取appsettings
,然后执行你的代码即可。 - smoksnesConfigurationManager
的。它是/是static
,可以在任何地方使用。在.NET Core(或.NET5)中,您可以使用ConfigurationBuilder
构建IConfiguration
。然后,通常将其注册到DI容器(ServiceProvider
)中,并在需要时注入它。依赖于您的注册的类将在需要时注入IConfiguration
。不,这与.NET Framework的情况并不完全相同。但这是因为.NET 5不像.NET Framework。 - smoksnes