You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.6 KiB

修改记录

2024年修改记录

CellularNetworkService.StartNetworkAsync 方法添加协议客户端配置创建

修改时间: 2024年 修改文件:

  • CoreAgent.Infrastructure/Services/Network/CellularNetworkService.cs

修改内容:

  1. 添加第5.5步协议客户端配置创建

    • StartNetworkAsync 方法的第5步(更新IP端点管理器)之后添加第5.5步
    • 直接创建 ProtocolClientConfigFactory 实例
    • 调用 CreateFromEntities() 方法创建协议客户端配置
    • 添加配置创建成功/失败的日志记录
    • 错误处理:配置创建失败时立即返回失败结果,不继续执行后续步骤
    • 优化执行顺序:将协议客户端配置创建提前到网络启动之前,确保数据可用性和错误隔离
  2. 修复Logger类型问题

    • 添加 ILoggerFactory 依赖注入到构造函数
    • 使用 _loggerFactory.CreateLogger<ProtocolClientConfigFactory>() 创建正确类型的Logger
    • 确保 ProtocolClientConfigFactory 获得正确的Logger实例
  3. 具体实现:

    // 5.5. 创建协议客户端配置
    var protocolConfigFactory = new ProtocolClientConfigFactory(_loggerFactory.CreateLogger<ProtocolClientConfigFactory>(), _context);
    var configCreated = protocolConfigFactory.CreateFromEntities();
    if (configCreated)
    {
        _logger.LogInformation("协议客户端配置创建成功,共创建 {ConfigCount} 个配置", protocolConfigFactory.ConfigCount);
    }
    else
    {
        _logger.LogWarning("协议客户端配置创建失败");
        return CellularNetworkOperationResult.Failure("协议客户端配置创建失败");
    }
    
  4. 添加必要的依赖注入

    • 添加 ILoggerFactory loggerFactory 参数到构造函数
    • 添加 using CoreAgent.Infrastructure.Services.Network; 以支持 ProtocolClientConfigFactory
  5. 设计优势:

    • 在IP端点信息准备完成后立即创建协议客户端配置
    • 不依赖网络启动结果,确保配置创建的独立性
    • 不依赖依赖注入,直接实例化使用
    • 提供详细的日志记录便于调试
    • 保持代码的简洁性和可维护性
    • 正确处理Logger类型,避免类型不匹配问题
    • 优化执行顺序,提高错误隔离能力
    • 完善的错误处理机制,确保配置创建失败时及时停止

影响范围:

  • 蜂窝网络启动流程
  • 协议客户端配置管理
  • 网络状态监控
  • 依赖注入配置(需要更新服务注册)

LogLayerHelp类名规范化

修改时间: 2024年 修改文件:

  • `