怪奇物语

怪奇物语

首页 新随笔 联系 管理

依赖注入, 参数配置, 默认参数,动态灵活的参数配置

  1. 通过委托配置实现灵活的服务参数管理
  2. Action<SecsGemOption> configure = null
  3. var option = new SecsGemOption(); configure?.Invoke(option);

using System;

// 模拟 SecsGemOption 类
public class SecsGemOption
{
    public string Target { get; set; } = "默认值"; // 默认值
}

// 模拟 IServiceCollection 类
public class MyServiceCollection { }

public static class MyServiceExtensions
{
    // 模拟 AddSecsGem 扩展方法
    public static void AddSecsGem(this MyServiceCollection collection, Action<SecsGemOption> configure = null)
    {
        // ♈♈♈♈♈♈♈♈♈♈♈ 
        var option = new SecsGemOption();
        // 关键点:执行外部传入的配置逻辑
        configure?.Invoke(option);
        Console.WriteLine($"最终配置: Target={option.Target}");
    }
}

class Program
{
    static void Main()
    {
        var services = new MyServiceCollection();

        // 场景1:不传入配置
        services.AddSecsGem(); // 输出: 最终配置: Target=默认值

        // 场景2:传入配置,修改 Target
        services.AddSecsGem(option =>
        {
            option.Target = "127.0.0.1:5000"; // 修改属性值
        }); // 输出: 最终配置: Target=127.0.0.1:5000

    }
}


posted on 2025-07-09 08:00  超级无敌美少男战士  阅读(11)  评论(0)    收藏  举报