Exemplo n.º 1
0
        private string SerializeToString(TJson obj)
        {
            if (obj == null)
            {
                return(null);
            }
            var serializer = DataContractSerializerCache.GetNoTypeDataJsonSerializer <T>();

            using (var str = new MemoryStream())
            {
                serializer.WriteObject(str, obj);
                return(Encoding.UTF8.GetString(str.ToArray()));
            }
        }
Exemplo n.º 2
0
        private TJson DesereaizeFromString(string str)
        {
            if (str == null)
            {
                return(null);
            }
            var serializer = DataContractSerializerCache.GetNoTypeDataJsonSerializer <TJson>();
            var bt         = Encoding.UTF8.GetBytes(str);

            using (var instr = new MemoryStream(bt))
            {
                return(serializer.ReadObject(instr) as TJson);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Десериализовать.
        /// </summary>
        /// <param name="data">Данные.</param>
        /// <returns>Объект.</returns>
        public ISerializableObject Deserialize(string data)
        {
            if (data == null)
            {
                return(null);
            }
            var serializer = DataContractSerializerCache.GetJsonSerializer <TBase>();

            using (var str = new MemoryStream(Encoding.UTF8.GetBytes(data)))
            {
                var r = serializer.ReadObject(str) as T;
                return(r != null?ValidateAfterDeserialize(r) : null);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Десериализовать контракт данных.
        /// </summary>
        /// <typeparam name="T">Тип контракта.</typeparam>
        /// <param name="data">Байты.</param>
        /// <returns>Объект.</returns>
        protected T DeserializeDataContract <T>(byte[] data)
        {
            if (data == null)
            {
                return(default(T));
            }
            var serializer = DataContractSerializerCache.GetSerializer <T>();

            using (var str = new MemoryStream(data))
            {
                using (var rd = XmlDictionaryReader.CreateBinaryReader(str, XmlDictionaryReaderQuotas.Max))
                {
                    return((T)serializer.ReadObject(rd));
                }
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Десериализовать.
        /// </summary>
        /// <param name="data">Данные.</param>
        /// <returns>Объект.</returns>
        public ISerializableObject Deserialize(byte[] data)
        {
            if (data == null)
            {
                return(null);
            }
            var serializer = DataContractSerializerCache.GetSerializer <TBase>();

            using (var str = new MemoryStream(data))
            {
                using (var rd = XmlDictionaryReader.CreateBinaryReader(str, XmlDictionaryReaderQuotas.Max))
                {
                    var r = serializer.ReadObject(rd) as T;
                    return(r != null?ValidateAfterDeserialize(r) : null);
                }
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Сериализовать контракт данных.
        /// </summary>
        /// <typeparam name="T">Тип контракта.</typeparam>
        /// <param name="obj">Объект.</param>
        /// <returns>Байты.</returns>
        protected byte[] SerializeDataContract <T>(T obj)
        {
            if (obj == null)
            {
                return(null);
            }
            var serializer = DataContractSerializerCache.GetSerializer <T>();

            using (var str = new MemoryStream())
            {
                using (var wr = XmlDictionaryWriter.CreateBinaryWriter(str))
                {
                    serializer.WriteObject(wr, obj);
                    wr.Flush();
                }
                return(str.ToArray());
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Сериализовать.
        /// </summary>
        /// <param name="obj">Объект.</param>
        /// <returns>Сериализованное медиа.</returns>
        private byte[] SerializeToBytes(T obj)
        {
            if (obj == null)
            {
                return(null);
            }
            var serializer = DataContractSerializerCache.GetSerializer <TBase>();

            using (var str = new MemoryStream())
            {
                using (var wr = XmlDictionaryWriter.CreateBinaryWriter(str))
                {
                    serializer.WriteObject(wr, ValidateContract(obj));
                    wr.Flush();
                }
                return(str.ToArray());
            }
        }