예제 #1
0
        /// <summary>
        /// Serialize NewHashmap
        /// </summary>
        /// <param name="instance"></param>
        /// <param name="serializationContext">Serialization context used to serialize the object</param>
        public static void Serialize(NewHashmap instance, string serializationContext, bool updateClientMap)
        {
            Hashtable mapInfo = null;

            if (instance != null)
            {
                mapInfo = new Hashtable();
                mapInfo.Add("ViewId", instance._lastViewId);
                mapInfo.Add("Members", instance._members);
                mapInfo.Add("Map", instance._map);
                mapInfo.Add("UpdateMap", updateClientMap);

                BinaryFormatter formatter = new BinaryFormatter();
                MemoryStream    stream    = new MemoryStream();
                formatter.Serialize(stream, mapInfo);
                instance._buffer = stream.ToArray();
            }
            //this._buffer = CompactBinaryFormatter.ToByteBuffer(this, serializationContext);
        }
예제 #2
0
        /// <summary>
        /// Deserialize NewHashmap
        /// </summary>
        /// <param name="serializationContext"></param>
        /// <returns></returns>
        public static NewHashmap Deserialize(byte[] buffer, string serializationContext)
        {
            NewHashmap hashmap = null;

            if (buffer != null && buffer.Length > 0)
            {
                BinaryFormatter formatter = new BinaryFormatter();
                MemoryStream    stream    = new MemoryStream(buffer);
                Hashtable       map       = formatter.Deserialize(stream) as Hashtable;
                if (map != null)
                {
                    hashmap             = new NewHashmap();
                    hashmap._lastViewId = (long)map["ViewId"];
                    hashmap._members    = (ArrayList)map["Members"];
                    hashmap._map        = (Hashtable)map["Map"];
                    hashmap._updateMap  = (map["UpdateMap"] != null) ? (bool)map["UpdateMap"] : false;
                }
            }
            return(hashmap);
        }