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()
{
}
}
}