/// <summary> /// 添加扫描对象 /// </summary> /// <param name="scanner"></param> /// <param name="value"></param> /// <param name="isArray">对象是否数组元素,数组元素不统计根静态字段</param> /// <returns>添加对象类型</returns> internal override byte Append(ref ReflectionScanner scanner, object value, bool isArray) { if (ScanFields.Length != 0) { scanner.Append(new ReflectionObjectScanner(value, this, isArray)); return(0); } return(BaseType.IsScan == 0 ? (byte)2 : BaseType.Append(ref scanner, value, isArray)); }
/// <summary> /// 添加扫描对象 /// </summary> /// <param name="scanner"></param> /// <param name="value"></param> /// <param name="isArray">对象是否数组元素,数组元素不统计根静态字段</param> /// <returns>添加对象类型</returns> internal override byte Append(ref ReflectionScanner scanner, object value, bool isArray) { if (value.GetType() == typeof(string)) { ElementCount += ((string)value).Length; } else { ElementCount += ((Array)value).Length; if (IsScan == 2) { scanner.Append(new ReflectionArrayScanner(value, ElementType)); return(1); } } return(2); }