Exemple #1
0
 /// <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);
 }