Browse Source

初始化TClassAndStruct类

main
zhengchang 5 months ago
parent
commit
62c1912568
  1. 8
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TClassAndStruct.cs
  2. 3
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs
  3. 7
      Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs
  4. 2
      Assets/_Project/Scripts/Generator/Excel/Test.cs

8
Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TClassAndStruct.cs

@ -10,11 +10,19 @@ namespace Tools.ExcelResolver.Editor
{ {
RealType = classType; RealType = classType;
FieldWriteFormat = RealType.Name; FieldWriteFormat = RealType.Name;
var fields = RealType.GetFields();
tType = new TType[fields.Length];
for (int i = 0; i < fields.Length; i++)
{
tType[i] = ExcelResolverUtil.GetTTypeByString(fields[i].FieldType.Name);
}
} }
internal override Type RealType { get; } internal override Type RealType { get; }
internal override object DefaultValue => null; internal override object DefaultValue => null;
internal override string FieldWriteFormat { get; } internal override string FieldWriteFormat { get; }
private TType[] tType;
internal override bool String2TType(string typeText, out TType result) internal override bool String2TType(string typeText, out TType result)
{ {
result = null; result = null;

3
Assets/Unity-Tools/ExcelResolver/Editor/Core/Types/TInt.cs

@ -13,7 +13,8 @@ namespace Tools.ExcelResolver.Editor
internal override bool String2TType(string typeText, out TType result) internal override bool String2TType(string typeText, out TType result)
{ {
result = null; result = null;
if (string.Equals(typeText, "int", StringComparison.OrdinalIgnoreCase)) if (string.Equals(typeText, "int", StringComparison.OrdinalIgnoreCase)
|| string.Equals(typeText, "int32", StringComparison.OrdinalIgnoreCase))
{ {
result = new TInt(typeText); result = new TInt(typeText);
return true; return true;

7
Assets/Unity-Tools/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.TType.cs

@ -80,6 +80,13 @@ namespace Tools.ExcelResolver.Editor
} }
_classAndStructTypes ??= GetAllClassAndStruct(); _classAndStructTypes ??= GetAllClassAndStruct();
foreach (var classAndStructType in _classAndStructTypes)
{
if (string.Equals(classAndStructType.Name, targetText, StringComparison.OrdinalIgnoreCase))
{
return Activator.CreateInstance(typeof(TClassAndStruct), targetText, classAndStructType) as TType;
}
}
throw new Exception($"type定义错误 " + throw new Exception($"type定义错误 " +
$"className: '<color=cyan>{_currentClassName}</color>' " + $"className: '<color=cyan>{_currentClassName}</color>' " +

2
Assets/_Project/Scripts/Generator/Excel/Test.cs

@ -28,6 +28,6 @@ namespace Tools.ExcelResolver
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public int item; public Item item;
} }
} }

Loading…
Cancel
Save