1 // 2 // Permission is hereby granted, free of charge, to any person obtaining 3 // a copy of this software and associated documentation files (the 4 // "Software"), to deal in the Software without restriction, including 5 // without limitation the rights to use, copy, modify, merge, publish, 6 // distribute, sublicense, and/or sell copies of the Software, and to 7 // permit persons to whom the Software is furnished to do so, subject to 8 // the following conditions: 9 // 10 // The above copyright notice and this permission notice shall be 11 // included in all copies or substantial portions of the Software. 12 // 13 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 14 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 15 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 16 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 17 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 18 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 19 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20 // 21 // Copyright � 2006, 2007 Nauck IT KG http://www.nauck-it.de 22 // 23 // Author: 24 // Daniel Nauck <d.nauck(at)nauck-it.de> 25 26 using System; 27 using System.Collections.Generic; 28 using System.Text; 29 using System.Xml; 30 using System.Xml.Serialization; 31 using System.Runtime.Serialization.Formatters.Binary; 32 using System.IO; 33 34 namespace System.Web.Util 35 { 36 internal class SerializationHelper 37 { SerializeToBase64(object value)38 internal string SerializeToBase64(object value) 39 { 40 return Convert.ToBase64String(SerializeToBinary(value)); 41 } 42 DeserializeFromBase64(string value)43 internal object DeserializeFromBase64(string value) 44 { 45 return DeserializeFromBinary(Convert.FromBase64String(value)); 46 } 47 SerializeToXml(object value)48 internal string SerializeToXml(object value) 49 { 50 using (MemoryStream mStream = new MemoryStream()) 51 { 52 XmlSerializer xmlFormatter = new XmlSerializer(typeof(object), "http://www.nauck-it.de/PostgreSQLProvider"); 53 xmlFormatter.Serialize(mStream, value); 54 return Convert.ToBase64String(mStream.ToArray()); 55 } 56 } 57 DeserializeFromXml(string value)58 internal object DeserializeFromXml(string value) 59 { 60 using (MemoryStream mStream = new MemoryStream(Convert.FromBase64String(value))) 61 { 62 XmlSerializer xmlFormatter = new XmlSerializer(typeof(object), "http://www.nauck-it.de/PostgreSQLProvider"); 63 return xmlFormatter.Deserialize(mStream); 64 } 65 } 66 SerializeToBinary(object value)67 internal byte[] SerializeToBinary(object value) 68 { 69 using (MemoryStream mStream = new MemoryStream()) 70 { 71 BinaryFormatter binFormatter = new BinaryFormatter(); 72 binFormatter.Serialize(mStream, value); 73 74 return mStream.ToArray(); 75 } 76 } 77 DeserializeFromBinary(byte[] value)78 internal object DeserializeFromBinary(byte[] value) 79 { 80 using (MemoryStream mStream = new MemoryStream(value)) 81 { 82 BinaryFormatter binFormatter = new BinaryFormatter(); 83 return binFormatter.Deserialize(mStream); 84 } 85 } 86 } 87 } 88