コード例 #1
0
        private static object DeserializeArrayInet(Type etype, NetMessage message)
        {
            var count = message.ReadInt32();
            var array = Array.CreateInstance(etype, count);

            for (int i = 0; i < count; i++)
            {
                var deser = (GetNew(etype) as INetSerializable);
                if (deser != null)
                {
                    deser.OnDeserialize(message);
                }
                array.SetValue(deser, i);
            }
            return(array);
        }
コード例 #2
0
        /// <summary>
        /// Deserialize the array from the message
        /// </summary>
        /// <param name="message"></param>
        public void OnDeserialize(NetMessage message)
        {
            var length = message.ReadInt32();

            Items = new T[length];

            for (int i = 0; i < length; i++)
            {
                var hasValue = true;
                if (PreserveIndex && !IsValueType)
                {
                    hasValue = message.ReadBoolean();
                }
                if (!hasValue)
                {
                    continue;
                }

                var t = new T();
                t.OnDeserialize(message);
                Items[i] = t;
            }
        }
コード例 #3
0
 public void OnDeserialize(NetMessage message)
 {
     Value = message.ReadInt32();
 }
コード例 #4
0
        /// <summary>
        /// deserialize from the stream
        /// </summary>
        /// <param name="message"></param>
        public override void OnDeserialize(NetMessage message)
        {
            var size = message.ReadInt32();

            message.ReadBytes(size, out Value);
        }