mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-25 04:59:01 +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 logger = Log.CreateLogger("IOC");
|
||||||
var list = GetAll<T>();
|
var list = GetAll<T>();
|
||||||
|
|
||||||
// 根据实例数量进行判断和处理
|
switch (list.Count)
|
||||||
return list.Count switch
|
|
||||||
{
|
{
|
||||||
0 =>
|
case 0:
|
||||||
{
|
var notFoundMsg = $"No instance registered for {typeof(T).Name}";
|
||||||
var errorMsg = $"No instance registered for {typeof(T).Name}";
|
logger.Error(notFoundMsg);
|
||||||
logger.Error(errorMsg);
|
throw new InvalidOperationException(notFoundMsg);
|
||||||
throw new InvalidOperationException(errorMsg);
|
|
||||||
},
|
case 1:
|
||||||
> 1 =>
|
|
||||||
{
|
|
||||||
var errorMsg = $"Multiple instances registered for {typeof(T).Name}";
|
|
||||||
logger.Error(errorMsg);
|
|
||||||
throw new InvalidOperationException(errorMsg);
|
|
||||||
},
|
|
||||||
_ =>
|
|
||||||
{
|
|
||||||
logger.Debug($"Retrieved required instance: {typeof(T).Name}");
|
logger.Debug($"Retrieved required instance: {typeof(T).Name}");
|
||||||
return list[0];
|
return list[0];
|
||||||
}
|
|
||||||
};
|
default:
|
||||||
|
var multipleMsg = $"Multiple instances registered for {typeof(T).Name}";
|
||||||
|
logger.Error(multipleMsg);
|
||||||
|
throw new InvalidOperationException(multipleMsg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user