来自旧版 dotnet Framework 4.7.1 应用的 Core API 配置生成器



尝试创建一个IConfigurationRoot类型对象以使用旧版dotnet框架4.7.1 WPF应用配置文件中的核心2.2 Api。

myCoreApiController.CoreApiMethod( confirutation); // (IConfigurationRoot configuration)

首先定义一个字典,并为其加载标识配置设置和值(实际设置(的键。该代码如下所示:

var settings = new Dictionary<string, string> 
{  
{"toDoService:url", "http://..."},  
{"toDoService:contractid", "???"}   
}; 

然后创建了一个ConfigurationBuilder,将我的配置设置字典添加到其中,并使用该ConfigurationBuilder构建IConfiguration对象。

这是该代码:

var cfgBuilder = new ConfigurationBuilder();
cfgBuilder.AddInMemoryCollection(settings);
IConfiguration cfg = cfgBuilder.Build();

ConfigurationBuilder也是一个接口。所以我无法创建实例。 然后我尝试实现它并创建自己的方法,但无法覆盖AddInMemoryCollection静态方法。 所以上面的解决方案不起作用。

请注意,该项目安装了NuGet Microsoft.Extensions.Configuration,Microsoft.Extensions.Configuration.Abstractions。

希望有人会分享他们实现这一目标的方式。

我刚刚遇到了这个"问题"。我的问题是我有:

using System.Configuration;

但我需要的是:

using Microsoft.Extensions.Configuration;

ConfigurationBuilder.Build方法返回IConfigurationRoot,它派生自IConfiguration

但在代码中,将生成的配置分配给IConfiguration

IConfiguration cfg = cfgBuilder.Build();

据指出,目标方法定义为

CoreApiMethod(IConfigurationRoot configuration);

问题是尝试将分配的IConfiguration变量作为IConfigurationRoot传递给目标函数。

分配变量时,请使用适当的类型。

var settings = new Dictionary<string, string> { 
{"toDoService:url", "http://..."},  
{"toDoService:contractid", "???"}   
}; 
IConfigurationRoot configuration = new ConfigurationBuilder()
.AddInMemoryCollection(settings)
.Build();
myCoreApiController.CoreApiMethod(confirutation); 

相关内容

  • 没有找到相关文章

最新更新