我对我的一些类使用IOptions模式作为配置.我需要在这个Options类中使用Dictionary<Uri, Uri>:

public class CdnOptions
{
    public const string CONFIG_SECTION_NAME_S = "CdnTransformationOptions";

    public bool EnableCdnTransformations { get; set; }
    public Dictionary<string, string> CdnTransformRules { get; set; } = [];
}

这就是我绑定这些选项的方式:

services.AddOptions<CdnOptions>().Bind(configuration.GetSection(CdnOptions.CONFIG_SECTION_NAME_S))
            .ValidateDataAnnotations();

appsettings.json包含的数据如下:

CdnTransformationOptions": {
 "EnableCdnTransformations": true,
 "CdnTransformRules": {
   "https://localhost:7021": "https://cdn.mydomain.com"
 }
},

但无论我怎么改,我得到的都是一本空词典.我也试着用简单的Dictionary<string, string>代替Dictionary<Uri, Uri>,但得到了同样的结果. 这里面少了什么?

推荐答案

问题是地址中包含‘:’字符,密钥中不允许使用该字符

点击此处阅读更多内容https://github.com/dotnet/runtime/issues/42643

Csharp相关问答推荐

如何使用FastEndpoints和.NET 8 WebAppliationBuilder进行集成测试?

我可以 suppress 规则CS 9035一次吗?

为什么在GuardationRule的收件箱函数中,decode.TryParse(valueString,out valueParsed)在给出1.0.1时返回true?

Nuget包Serilog.Sinks.AwsCloudwatch引发TypeLoadExceptions,因为父类型是密封的

C#-从基类更新子类

在静态模式下实例化配置

如何在WPF的树视图中显示一个对象的两个或多个属性,其中只有一个是分层项?

在此系统上已禁用获取正在运行的脚本.&在ASP.NET Core Web API中

如何注册类使用多级继承与接口

如何使用自定义负载均衡器管理Ocelot负载均衡器中的多线程和批读取

在C#中,将两个哈希集连接在一起的时间复杂度是多少?

C# CompareTo()和Compare()可以返回除-1和1以外的整数吗?

如何比较C#中的L和ł(波兰字符)返回TRUE

正确处理嵌套的本机集合

EFR32BG22 BLE在SPP模式下与PC(Windows 10)不连接

如何在我的C#应用程序中设置带有reactjs前端的SignalR服务器?

GODOT 4向C#中的字符串参数发送信号以等待

正在try 将自定义字体添加到我的控制台应用程序

如何在.NET MAUI上在iOS和Mac之间共享代码?(no条件编译和无代码重复)

如果所有";async任务方法()";调用都返回Task.FromResult()-是否同步执行?