using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Serein.Library.Entity { /// /// 方法入参描述 /// public class ParameterDetailsInfo { /// /// 参数索引 /// public int Index { get; set; } /// /// 方法需要的类型 /// public string DataTypeFullName { get; set; } /// /// 方法入参参数名称 /// public string Name { get; set; } } /// /// 节点入参参数详情 /// public class ParameterDetails { /// /// 转为描述 /// /// public ParameterDetailsInfo ToInfo() { return new ParameterDetailsInfo { Index = Index, DataTypeFullName = DataType.FullName, Name = Name }; } /// /// 拷贝新的对象。 /// /// public ParameterDetails Clone() => new ParameterDetails() { Index = Index, IsExplicitData = IsExplicitData, ExplicitType = ExplicitType, ExplicitTypeName = ExplicitTypeName, Convertor = Convertor, DataType = DataType, Name = Name, DataValue = string.IsNullOrEmpty(DataValue) ? string.Empty : DataValue, Items = Items.Select(it => it).ToArray(), }; /// /// 参数索引 /// public int Index { get; set; } /// /// 是否为显式参数(固定值/表达式) /// public bool IsExplicitData { get; set; } /// /// 转换器 IEnumConvertor<,> /// public Func Convertor { get; set; } /// /// 显式类型 /// public Type ExplicitType { get; set; } /// /// 目前存在三种状态:Select/Bool/Value /// Select : 枚举值 /// Bool : 布尔类型 /// Value : 除以上类型之外的任意参数 /// public string ExplicitTypeName { get; set; } /// /// 方法需要的类型 /// public Type DataType { get; set; } /// /// 方法入参参数名称 /// public string Name { get; set; } /// /// 入参值(在UI上输入的文本内容) /// public string DataValue { get; set; } /// /// 如果是引用类型,拷贝时不会发生改变。 /// public object[] Items { get; set; } } }