尝试创建一个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);