コード例 #1
0
        /// <summary>
        /// Сериализовать.
        /// </summary>
        /// <param name="obj">Объект.</param>
        /// <returns>Сериализованный объект.</returns>
        private string SerializeToString(T obj)
        {
            if (obj == null)
            {
                return(null);
            }
            var serializer = DataContractSerializerCache.GetJsonSerializer <TBase>();

            using (var str = new MemoryStream())
            {
                serializer.WriteObject(str, ValidateContract(obj));
                return(Encoding.UTF8.GetString(str.ToArray()));
            }
        }
コード例 #2
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);
            }
        }