public PXMessageEncoder(IEnumerable <Type> messageTypes) { this.messageTypes = new Dictionary <int, Type>(); foreach (var t in messageTypes) { this.messageTypes[PXMessageInfo.GetMessageTypeHashCode(t)] = t; } }
internal void RegisterMessageTypeIfNotRegistered(Type type) { var hash = PXMessageInfo.GetMessageTypeHashCode(type); if (this.messageTypes.ContainsKey(hash)) { return; } this.messageTypes[hash] = type; }
public byte[] EncodeMessage(object message) { JObject obj = JObject.FromObject(new Dictionary <string, object> { { PXMessageInfo.MESSAGE_SERIALIZATION_FIELD_NAME, PXMessageInfo.GetMessageTypeHashCode(message.GetType()) }, { PXMessageInfo.MESSAGE_SERIALIZATION_FIELD_BODY, message }, }); string objAsString = obj.ToString(Newtonsoft.Json.Formatting.None); byte[] buffer = new byte[Encoding.UTF8.GetByteCount(objAsString)]; Encoding.UTF8.GetBytes(objAsString, 0, objAsString.Length, buffer, 0); return(buffer); }