/// <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())); } }
/// <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); } }