From dc85f5fb5fa80b8f52dac3cde845677a7ee424e9 Mon Sep 17 00:00:00 2001
From: coffee <985942825@qq.com>
Date: Sun, 19 Jan 2025 01:54:46 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=95=B4=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../{ => Core/Util}/ExcelResolverUtil.Cell.cs | 0
.../Util}/ExcelResolverUtil.Cell.cs.meta | 0
...{TypeUtil.cs => ExcelResolverUtil.Type.cs} | 48 ++++++++++++++++-
.../Util}/ExcelResolverUtil.Type.cs.meta | 0
.../Editor/Core/Util/TypeUtil.cs.meta | 3 --
.../ExcelResolverEditorWindow.ReadExcel.cs | 2 +-
.../Editor/ExcelResolverUtil.Type.cs | 54 -------------------
7 files changed, 48 insertions(+), 59 deletions(-)
rename Assets/Unity-Tools/Core/ExcelResolver/Editor/{ => Core/Util}/ExcelResolverUtil.Cell.cs (100%)
rename Assets/Unity-Tools/Core/ExcelResolver/Editor/{ => Core/Util}/ExcelResolverUtil.Cell.cs.meta (100%)
rename Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/{TypeUtil.cs => ExcelResolverUtil.Type.cs} (71%)
rename Assets/Unity-Tools/Core/ExcelResolver/Editor/{ => Core/Util}/ExcelResolverUtil.Type.cs.meta (100%)
delete mode 100644 Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/TypeUtil.cs.meta
delete mode 100644 Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Type.cs
diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Cell.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs
similarity index 100%
rename from Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Cell.cs
rename to Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs
diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Cell.cs.meta b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs.meta
similarity index 100%
rename from Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Cell.cs.meta
rename to Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs.meta
diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/TypeUtil.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs
similarity index 71%
rename from Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/TypeUtil.cs
rename to Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs
index b53bd54..291fc6c 100644
--- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/TypeUtil.cs
+++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs
@@ -4,7 +4,7 @@ using UnityEngine;
namespace Tools.ExcelResolver.Editor
{
- internal static class TypeUtil
+ internal static partial class ExcelResolverUtil
{
internal static TType GetTTypeByString(string typeText)
@@ -90,5 +90,51 @@ namespace Tools.ExcelResolver.Editor
throw new ArgumentException($"Unsupported type: {typeText}");
}
+
+ ///
+ /// 类型缓存,避免重复反射查找
+ ///
+ internal static readonly Dictionary TypeCache = new(StringComparer.OrdinalIgnoreCase);
+
+ ///
+ /// 通过类名(含命名空间)获取 Type,并缓存
+ ///
+ internal static Type GetOrCacheTypeByName(string typeName)
+ {
+ if (TypeCache.TryGetValue(typeName, out Type cachedType))
+ {
+ return cachedType;
+ }
+
+ string namespacedType = $"Tools.ExcelResolver.{typeName}";
+ Type type = Type.GetType(namespacedType, false, true) ?? GetTypeFromAllAssemblies(namespacedType);
+
+ if (type != null)
+ {
+ TypeCache[typeName] = type;
+ }
+
+ return type;
+ }
+
+ internal static Type GetTypeFromAllAssemblies(string typeName)
+ {
+ foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
+ {
+ var type = assembly.GetType(typeName);
+ if (type != null)
+ {
+ TypeCache[typeName] = type;
+ return type;
+ }
+ }
+
+ throw new ArgumentException($"Unsupported type: {typeName}");
+ }
+
+ internal static void Dispose()
+ {
+ TypeCache.Clear();
+ }
}
}
\ No newline at end of file
diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Type.cs.meta b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs.meta
similarity index 100%
rename from Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Type.cs.meta
rename to Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs.meta
diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/TypeUtil.cs.meta b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/TypeUtil.cs.meta
deleted file mode 100644
index 847a70a..0000000
--- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/TypeUtil.cs.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 5e00e18dfb2244dbb54a891cd3505c9c
-timeCreated: 1736011944
\ No newline at end of file
diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs
index 95ee1a4..e822688 100644
--- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs
+++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs
@@ -137,7 +137,7 @@ namespace Tools.ExcelResolver.Editor
colIndex = col,
varName = worksheet.Cells[2, col].Text,
typeString = worksheet.Cells[3, col].Text,
- type = TypeUtil.GetTTypeByString(worksheet.Cells[3, col].Text),
+ type = ExcelResolverUtil.GetTTypeByString(worksheet.Cells[3, col].Text),
info = worksheet.Cells[4, col].Text,
description = worksheet.Cells[5, col].Text,
path = worksheet.Cells[6, col].Text,
diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Type.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Type.cs
deleted file mode 100644
index 2fe71a8..0000000
--- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Type.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-namespace Tools.ExcelResolver.Editor
-{
- internal static partial class ExcelResolverUtil
- {
- ///
- /// 类型缓存,避免重复反射查找
- ///
- internal static readonly Dictionary TypeCache = new(StringComparer.OrdinalIgnoreCase);
-
- ///
- /// 通过类名(含命名空间)获取 Type,并缓存
- ///
- internal static Type GetOrCacheTypeByName(string typeName)
- {
- if (TypeCache.TryGetValue(typeName, out Type cachedType))
- {
- return cachedType;
- }
-
- string namespacedType = $"Tools.ExcelResolver.{typeName}";
- Type type = Type.GetType(namespacedType, false, true) ?? GetTypeFromAllAssemblies(namespacedType);
-
- if (type != null)
- {
- TypeCache[typeName] = type;
- }
-
- return type;
- }
-
- internal static Type GetTypeFromAllAssemblies(string typeName)
- {
- foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
- {
- var type = assembly.GetType(typeName);
- if (type != null)
- {
- TypeCache[typeName] = type;
- return type;
- }
- }
-
- throw new ArgumentException($"Unsupported type: {typeName}");
- }
-
- internal static void Dispose()
- {
- TypeCache.Clear();
- }
- }
-}
\ No newline at end of file