示例#1
0
        public static UInt32 SerializeCommand <T>(IInstanceSerializer <T> serializer, Byte commandID, T command, Buf buffer, UInt32 offset)
        {
            UInt32 commandLength = 1 + serializer.SerializationLength(command);

            offset = FrameProtocol.SetupFrame(buffer, offset, commandLength);
            buffer.array[offset++] = commandID;
            return(serializer.Serialize(buffer.array, offset, command));
        }
示例#2
0
        public override UInt32 SerializationLength(Object instance)
        {
            ElementType[] elements = CheckAndGetValue(instance);
            UInt32        length   = 0;

            for (int i = 0; i < elements.Length; i++)
            {
                length += elementSerializer.SerializationLength(elements[i]);
            }
            return(length);
        }
示例#3
0
        public override UInt32 SerializationLength(Object instance)
        {
            Object valueAsObject = fieldInfo.GetValue(instance);

            if (valueAsObject == null)
            {
                return(arraySizeByteCount);
            }

            ElementType[] elements = (ElementType[])valueAsObject;
            UInt32        length   = 0;

            for (int i = 0; i < elements.Length; i++)
            {
                length += elementSerializer.SerializationLength(elements[i]);
            }
            return(arraySizeByteCount + length);
        }
示例#4
0
 public UInt32 SerializationLength()
 {
     return(serializer.SerializationLength(instance));
 }