예제 #1
0
        /// <summary>
        /// 準備したデータをシリアライズします。
        /// </summary>
        private void Serialize()
        {
            if (Data == null)
            {
                throw new PbException("Dataがnullです。");
            }

            SerializedData = PbUtil.Serialize(Data, Data.GetType());

            // 型名はPbConnectionでエンコードします。
            TypeName        = TypeSerializer.Serialize(Data.GetType());
            EncodedTypeName = PbConnection.EncodeTypeName(TypeName);
            EncodedTypeData = Encoding.UTF8.GetBytes(EncodedTypeName);
        }
예제 #2
0
        /// <summary>
        /// メッセージオブジェクトをデシリアライズします。
        /// </summary>
        private object DeserializeMessage(byte[] payloadBuffer, Type type)
        {
            var message = PbUtil.Deserialize(payloadBuffer, type);

            if (message == null)
            {
                throw new PbException(
                          string.Format(
                              "データのデシリアライズに失敗しました。" +
                              "(content size={0}, type={1})",
                              payloadBuffer.Length, type));
            }

            return(message);
        }