refactor(ioc): 优化IocContainer中GetSingle方法的switch表达式

- 将switch表达式重构为传统switch语句
- 添加了对单个实例情况的明确处理
- 统一了错误消息变量命名规范
- 保持了原有的功能逻辑不变
- 改进了代码的可读性和维护性
This commit is contained in:
GeWuYou 2025-12-23 13:29:18 +08:00
parent 0980fd48b5
commit 9ed57324c7

View File

@ -242,27 +242,22 @@ public class IocContainer
var logger = Log.CreateLogger("IOC");
var list = GetAll<T>();
// 根据实例数量进行判断和处理
return list.Count switch
switch (list.Count)
{
0 =>
{
var errorMsg = $"No instance registered for {typeof(T).Name}";
logger.Error(errorMsg);
throw new InvalidOperationException(errorMsg);
},
> 1 =>
{
var errorMsg = $"Multiple instances registered for {typeof(T).Name}";
logger.Error(errorMsg);
throw new InvalidOperationException(errorMsg);
},
_ =>
{
case 0:
var notFoundMsg = $"No instance registered for {typeof(T).Name}";
logger.Error(notFoundMsg);
throw new InvalidOperationException(notFoundMsg);
case 1:
logger.Debug($"Retrieved required instance: {typeof(T).Name}");
return list[0];
}
};
default:
var multipleMsg = $"Multiple instances registered for {typeof(T).Name}";
logger.Error(multipleMsg);
throw new InvalidOperationException(multipleMsg);
}
}
/// <summary>