public override Type GetValueType(Builtin builtin) { var type = base.GetValueType(builtin) ?? PluginUtility.GetOwnerElementType(builtin.Node); if (type == null) { //尝试获取value属性值的类型 if (builtin.Properties.TryGet("value", out var property) && Parsers.Parser.CanParse(property.RawValue)) { type = Parsers.Parser.GetValueType(property.RawValue, builtin); } } return(type); }
public override Type GetValueType(Builtin builtin) { //调用基类同名方法 var type = base.GetValueType(builtin); if (type == null) { //尝试获取value属性值的类型 if (builtin.Properties.TryGet("value", out var property) && Parsers.Parser.CanParse(property.RawValue)) { return(Parsers.Parser.GetValueType(property.RawValue, builtin)); } //返回所有者元素类型(如果所有者如果是一个泛型集合的话,否则返回空) return(PluginUtility.GetOwnerElementType(builtin.Node)); } return(type); }