using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading.Tasks; namespace OptionStudy.Next { /// /// 5.2 配置模型 ConfigurationManager /// ConfigurationManager 表示一个可动态改变的配置,统一了IConfigurationt和IConfigurationBuilder,Build方法返回的就是自身。 /// 当 Source 属性体现的配置源发生变化时,基自身维护的配置状态将自动更新。 /// ASP.NET Core 框架使用的就是这个对象,特别是最小API模式下。 /// public class ConfigurationManagerTest: IDisposable { private readonly ITestOutputHelper testOutput; private IDictionary memoryData = new Dictionary() { ["AppName"] = "MemoryAppName", ["AppVersion"] = "0.0.0.1", ["EMail:ReceiveAddress"] = "memory@163.com", ["EMail:Recipient"] = "memory", }; public ConfigurationManagerTest(ITestOutputHelper testOutputHelper) { testOutput = testOutputHelper; } /// /// 使用配置管理器 /// 相当于 ConfigurationBuilder 和 IConfiguration(IConfigurationRoot)的 “合体” /// [Fact] public void UseManager_Test() { ConfigurationManager manager = new ConfigurationManager(); manager.AddInMemoryCollection(memoryData); var childerns = manager.GetChildren(); Assert.Equal(3, childerns.Count()); } public void Dispose() { } } }