/// <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); }
/// <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); }