mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
refactor(ioc): 优化IocContainer中GetSingle方法的switch表达式
- 将switch表达式重构为传统switch语句 - 添加了对单个实例情况的明确处理 - 统一了错误消息变量命名规范 - 保持了原有的功能逻辑不变 - 改进了代码的可读性和维护性
This commit is contained in:
parent
0980fd48b5
commit
9ed57324c7
@ -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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user