代码之家  ›  专栏  ›  技术社区  ›  Alexander Zeitler

将字典<string,string>绑定到配置节不起作用

  •  0
  • Alexander Zeitler  · 技术社区  · 2 周前

    我正在努力 Bind Dictionary<string,string> 到这样的配置部分:

    [TestFixture]
    public class When_binding_a_configuration_section
    {
      [Test]
      public void should_contain_section()
      {
        var config = new ConfigurationBuilder()
          .AddInMemoryCollection()
          .Build();
    
        var dict = new Dictionary<string, string>()
        {
          { "Key", "Value" }
        };
    
        config.Bind("Section", dict);
        var section = config.GetSection("Section");
        section.GetSection("Section").ShouldNotBeNull(); // true
        section["Key"].ShouldBe("Value"); // false
      }
    }
    

    第一个断言成功,而第一个断言失败。

    我在这里做错了什么?

    1 回复  |  直到 2 周前
        1
  •  1
  •   Guru Stron    2 周前

    Bind 将配置中的数据(在您的情况下为空)绑定到您传递给调用的对象实例(即。 dict ).

    假设您想将数据从字典传递到配置,您可以执行以下操作:

    var dict = new Dictionary<string, string>()
    {
        { "Section:Key", "Value" }
    };
    var config = new ConfigurationBuilder()
        .AddInMemoryCollection(dict)
        .Build();
    var section = config.GetSection("Section");
    var s1 = section["Key"]; // contains "Value"