コード例 #1
0
        int ITypeSerialize.CalculateSize(object value)
        {
            if (value == null)
            {
                return(0);
            }

            int total = 0;

            for (int i = 0; i < fieldInfos.Count; ++i)
            {
                var fieldInfo = fieldInfos[i];
                var cv        = fieldInfo.GetValue(value);
                if (cv == null)
                {
                    continue;
                }

                var fieldType = fieldInfo.FieldType;
                total += WRStream.ComputeStringSize(fieldInfo.Name);
                int size = MonoSerialize.GetByType(fieldInfo).CalculateSize(cv);
                total += WRStream.ComputeLengthSize(size);
                total += size;
            }

            return(total);
        }
コード例 #2
0
        int ITypeSerialize.CalculateSize(object value)
        {
            Object[] objs = value as Object[];
            if (objs == null)
            {
                return(0);
            }

            return(WRStream.ComputeLengthSize(objs.Length) + objs.Length * 2);
        }
コード例 #3
0
        int ITypeSerialize.CalculateSize(object value)
        {
            var array = value as IList;

            if (array != null)
            {
                // 长度+各个元素内容
                return(WRStream.ComputeLengthSize(array.Count) + (array.Count * GetElementSize()));
            }
            else
            {
                return(0);
            }
        }
コード例 #4
0
        int ITypeSerialize.CalculateSize(object value)
        {
            var array = value as IList;

            if (array != null)
            {
                int total = WRStream.ComputeLengthSize(array.Count); // 长度

                // 长度+各个元素内容
                for (int i = 0; i < array.Count; ++i)
                {
                    total += WRStream.ComputeStringSize((string)array[i]);
                }
                return(total);
            }

            return(0);
        }
コード例 #5
0
        int ITypeSerialize.CalculateSize(object value)
        {
            if (value == null)
            {
                return(0);
            }

            IList array = value as IList;
            int   total = WRStream.ComputeLengthSize(array.Count);

            // 长度+各个元素内容
            for (int i = 0; i < array.Count; ++i)
            {
                int s = elementTypeSerialize.CalculateSize(array[i]);
                total += WRStream.ComputeLengthSize(s);
                total += s;
            }

            return(total);
        }