Browse Source

文件整理

master
coffee 5 months ago
parent
commit
dc85f5fb5f
  1. 0
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs
  2. 0
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs.meta
  3. 48
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs
  4. 0
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs.meta
  5. 3
      Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/TypeUtil.cs.meta
  6. 2
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs
  7. 54
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Type.cs

0
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Cell.cs → Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs

0
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Cell.cs.meta → Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs.meta

48
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/TypeUtil.cs → Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs

@ -4,7 +4,7 @@ using UnityEngine;
namespace Tools.ExcelResolver.Editor namespace Tools.ExcelResolver.Editor
{ {
internal static class TypeUtil internal static partial class ExcelResolverUtil
{ {
internal static TType GetTTypeByString(string typeText) internal static TType GetTTypeByString(string typeText)
@ -90,5 +90,51 @@ namespace Tools.ExcelResolver.Editor
throw new ArgumentException($"Unsupported type: {typeText}"); throw new ArgumentException($"Unsupported type: {typeText}");
} }
/// <summary>
/// 类型缓存,避免重复反射查找
/// </summary>
internal static readonly Dictionary<string, Type> TypeCache = new(StringComparer.OrdinalIgnoreCase);
/// <summary>
/// 通过类名(含命名空间)获取 Type,并缓存
/// </summary>
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();
}
} }
} }

0
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Type.cs.meta → Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Type.cs.meta

3
Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/TypeUtil.cs.meta

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 5e00e18dfb2244dbb54a891cd3505c9c
timeCreated: 1736011944

2
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs

@ -137,7 +137,7 @@ namespace Tools.ExcelResolver.Editor
colIndex = col, colIndex = col,
varName = worksheet.Cells[2, col].Text, varName = worksheet.Cells[2, col].Text,
typeString = worksheet.Cells[3, 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, info = worksheet.Cells[4, col].Text,
description = worksheet.Cells[5, col].Text, description = worksheet.Cells[5, col].Text,
path = worksheet.Cells[6, col].Text, path = worksheet.Cells[6, col].Text,

54
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverUtil.Type.cs

@ -1,54 +0,0 @@
using System;
using System.Collections.Generic;
namespace Tools.ExcelResolver.Editor
{
internal static partial class ExcelResolverUtil
{
/// <summary>
/// 类型缓存,避免重复反射查找
/// </summary>
internal static readonly Dictionary<string, Type> TypeCache = new(StringComparer.OrdinalIgnoreCase);
/// <summary>
/// 通过类名(含命名空间)获取 Type,并缓存
/// </summary>
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();
}
}
}
Loading…
Cancel
Save