diff --git a/Realtime/Message/LCIMTextMessage.cs b/Realtime/Message/LCIMTextMessage.cs index 65244cb..2b0fb56 100644 --- a/Realtime/Message/LCIMTextMessage.cs +++ b/Realtime/Message/LCIMTextMessage.cs @@ -30,7 +30,6 @@ namespace LeanCloud.Realtime { public override int MessageType => TextMessageType; internal override void Decode(Dictionary msgData) { - base.Decode(msgData); if (msgData.TryGetValue(MessageTextKey, out object value)) { Text = value as string; } diff --git a/Realtime/Message/LCIMTypedMessage.cs b/Realtime/Message/LCIMTypedMessage.cs index 3c1b677..6199642 100644 --- a/Realtime/Message/LCIMTypedMessage.cs +++ b/Realtime/Message/LCIMTypedMessage.cs @@ -109,11 +109,8 @@ namespace LeanCloud.Realtime { } internal virtual void Decode(Dictionary msgData) { + // 直接保存 data = msgData; - MessageType = (int)msgData[MessageTypeKey]; - if (msgData.TryGetValue(MessageAttributesKey, out object attrObj)) { - customProperties = LCDecoder.Decode(attrObj) as Dictionary; - } } internal static LCIMTypedMessage Deserialize(string json) { @@ -128,6 +125,10 @@ namespace LeanCloud.Realtime { // 未注册的类型消息 message = new LCIMTypedMessage(); } + message.MessageType = msgType; + if (msgData.TryGetValue(MessageAttributesKey, out object attrObj)) { + message.customProperties = LCDecoder.Decode(attrObj) as Dictionary; + } message.Decode(msgData); return message; }