diff --git a/OptionStudy.Next/2配置模型/ConfigurationManagerTest.cs b/OptionStudy.Next/2配置模型/ConfigurationManagerTest.cs
new file mode 100644
index 0000000..8f57366
--- /dev/null
+++ b/OptionStudy.Next/2配置模型/ConfigurationManagerTest.cs
@@ -0,0 +1,55 @@
+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
+{
+    /// <summary>
+    /// 5.2 配置模型 ConfigurationManager
+    ///  ConfigurationManager 表示一个可动态改变的配置,统一了IConfigurationt和IConfigurationBuilder,Build方法返回的就是自身。
+    ///  当 Source 属性体现的配置源发生变化时,基自身维护的配置状态将自动更新。
+    ///  ASP.NET Core 框架使用的就是这个对象,特别是最小API模式下。
+    /// </summary>
+    public class ConfigurationManagerTest: IDisposable
+    {
+        private readonly ITestOutputHelper testOutput;
+
+        private IDictionary<string, string?> memoryData = new Dictionary<string, string?>()
+        {
+            ["AppName"] = "MemoryAppName",
+            ["AppVersion"] = "0.0.0.1",
+            ["EMail:ReceiveAddress"] = "memory@163.com",
+            ["EMail:Recipient"] = "memory",
+        };
+
+        public ConfigurationManagerTest(ITestOutputHelper testOutputHelper)
+        {
+            testOutput = testOutputHelper;
+        }
+
+        /// <summary>
+        /// 使用配置管理器
+        /// 相当于 ConfigurationBuilder 和 IConfiguration(IConfigurationRoot)的 “合体”
+        /// </summary>
+        [Fact]
+        public void UseManager_Test()
+        {
+            ConfigurationManager manager = new ConfigurationManager();
+            manager.AddInMemoryCollection(memoryData);
+
+            var childerns = manager.GetChildren();
+
+            Assert.Equal(3, childerns.Count());
+        }
+
+        public void Dispose()
+        {
+
+        }
+    }
+}
diff --git a/OptionStudy.Next/2配置模型/IConfigurationProviderTest.cs b/OptionStudy.Next/2配置模型/IConfigurationProviderTest.cs
index fd2c6fa..c0268cb 100644
--- a/OptionStudy.Next/2配置模型/IConfigurationProviderTest.cs
+++ b/OptionStudy.Next/2配置模型/IConfigurationProviderTest.cs
@@ -15,7 +15,7 @@ namespace OptionStudy.Next
     /// IConfigrutionProvider 被设计为 IConfigurationSource 构建,并保持在 IConfigurationBuilder 的属性中
     /// 所以一般不单独实例化出来使用,而是配合 IConfigurationSource 和 IConfigurationBuilder 使用
     /// </summary>
-    public class IConfigurationProviderTest: IDisposable
+    public class IConfigurationProviderTest : IDisposable
     {
         private readonly ITestOutputHelper testOutput;
 
@@ -49,20 +49,20 @@ namespace OptionStudy.Next
             //关联 ConfigurationSource
             var source = new MemoryConfigurationSource()
             {
-                InitialData = new Dictionary<string, string?>() { ["TestName"]="MyTest"}
+                InitialData = new Dictionary<string, string?>() { ["TestName"] = "MyTest" }
             };
             var provider = new MemoryConfigurationProvider(source);
             Assert.NotNull(provider);
 
             //可以进行各种操作
-            Action run = () => 
+            Action run = () =>
             {
                 provider.Set("TestName", "UpdateName");
-                if (!provider.TryGet("Demo",out string _v))
-                { 
-                     provider.Add("Demo", "demo");
+                if (!provider.TryGet("Demo", out string _v))
+                {
+                    provider.Add("Demo", "demo");
                 }
-               
+
                 provider.Load();
             };
 
@@ -76,28 +76,38 @@ namespace OptionStudy.Next
         }
 
         /// <summary>
-        /// 获取 IConfigrution 手动添加配置源
-        /// 方法一:ConfigurationSource Build()方法
-        ///   说明:参数为空值,框架设置的参数并没有在初始化中直接使用,可能是强调与 ConfigurationBuilder 关系吧
-        ///         IConfigurationProvider 应该由  IConfigurationBuilder 创建,基本是写在扩展方法里,这样设计可能是强调这种编程使用方式吧
+        /// IConfigurationProvider 由 Source 构建
         /// </summary>
         [Fact]
-        public void IConfigrutionProvider_Create_1_Test()
+        public void IConfigrutionProvider_BuildBySource_Test()
         {
             //内存配置源
             MemoryConfigurationSource source = new MemoryConfigurationSource()
-            { 
-                InitialData= memoryData,
+            {
+                InitialData = memoryData,
             };
 
-            //内存配置提供者:实际上由配置源提供,构建过程中直接使用配置源,不需要单独提出来  
+
             var provider = source.Build(null);
+            var hasName = provider.TryGet("AppName", out _);
+
+            Assert.NotNull(provider);
+            Assert.True(hasName);
+        }
 
-            //直接使用配置源,无需显式使用 Provider
-            var builder = new ConfigurationBuilder().Add(source);
-            var configrution = builder.Build();
+        /// <summary>
+        /// IConfigurationProvider 由 IConfigruationBuilder 构建
+        /// </summary>
+        [Fact]
+        public void IConfigrutionProvider_IConfigruationBuilder_Test()
+        {
+            var builder = new ConfigurationBuilder().AddInMemoryCollection(memoryData).Build();
+            var provider = builder.Providers.First();
+
+            var hasName = provider.TryGet("AppName", out _);
 
-            Assert.NotNull(configrution);
+            Assert.NotNull(provider);
+            Assert.True(hasName);
         }
 
         public void Dispose()