Esempio n. 1
0
 public PXMessageEncoder(IEnumerable <Type> messageTypes)
 {
     this.messageTypes = new Dictionary <int, Type>();
     foreach (var t in messageTypes)
     {
         this.messageTypes[PXMessageInfo.GetMessageTypeHashCode(t)] = t;
     }
 }
Esempio n. 2
0
        internal void RegisterMessageTypeIfNotRegistered(Type type)
        {
            var hash = PXMessageInfo.GetMessageTypeHashCode(type);

            if (this.messageTypes.ContainsKey(hash))
            {
                return;
            }

            this.messageTypes[hash] = type;
        }
Esempio n. 3
0
        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);
        }