|
|
|
@ -7,10 +7,7 @@ namespace Tools.ExcelResolver.Editor
|
|
|
|
|
internal class TDict : TType |
|
|
|
|
{ |
|
|
|
|
public TDict() { } |
|
|
|
|
public TDict(string typeText = null) : base(typeText) |
|
|
|
|
{ |
|
|
|
|
String2TType(typeText); |
|
|
|
|
} |
|
|
|
|
public TDict(string typeText) : base(typeText) { } |
|
|
|
|
internal override Type RealType => typeof(Dictionary<,>).MakeGenericType(KeyType.RealType, ValueType.RealType); |
|
|
|
|
internal override string FieldWriteFormat => $"Dictionary<{KeyType.RealType.Name}, {ValueType.RealType.Name}>"; |
|
|
|
|
internal override object DefaultValue => Activator.CreateInstance(typeof(Dictionary<,>).MakeGenericType(KeyType.RealType, ValueType.RealType)); |
|
|
|
@ -19,8 +16,9 @@ namespace Tools.ExcelResolver.Editor
|
|
|
|
|
internal TType KeyType { get; set; } |
|
|
|
|
internal TType ValueType { get; set; } |
|
|
|
|
|
|
|
|
|
internal override bool String2TType(string typeText) |
|
|
|
|
internal override bool String2TType(string typeText, out TType result) |
|
|
|
|
{ |
|
|
|
|
result = null; |
|
|
|
|
var split = typeText.Split(',', StringSplitOptions.RemoveEmptyEntries); |
|
|
|
|
if (split.Length < 3 || !split[0].StartsWith("dict", StringComparison.OrdinalIgnoreCase)) |
|
|
|
|
{ |
|
|
|
@ -28,10 +26,20 @@ namespace Tools.ExcelResolver.Editor
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 解析键和值的类型 |
|
|
|
|
KeyType = ExcelResolverUtil.GetTTypeByString(split[1]); |
|
|
|
|
ValueType = ExcelResolverUtil.GetTTypeByString(split[2]); |
|
|
|
|
var keyType = ExcelResolverUtil.GetTTypeByString(split[1]); |
|
|
|
|
var valueType = ExcelResolverUtil.GetTTypeByString(split[2]); |
|
|
|
|
|
|
|
|
|
return KeyType != null && ValueType != null; |
|
|
|
|
if (keyType != null && valueType != null) |
|
|
|
|
{ |
|
|
|
|
result = new TDict(typeText) |
|
|
|
|
{ |
|
|
|
|
KeyType = keyType, |
|
|
|
|
ValueType = valueType |
|
|
|
|
}; |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
internal override object TryParseFrom(string cellText) |
|
|
|
|