SerializationHelper
Defines static methods to serialize and deserialize objects.
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
using System.Text;
namespace Relativity.DataExchange
{
internal static class SerializationHelper
{
public static void SerializeToSoapFile(object value, string file)
{
using (FileStream fileStream = new FileStream(file, FileMode.Create, FileAccess.Write, FileShare.None))
new SoapFormatter().Serialize((Stream)fileStream, value);
}
public static T DeserializeFromSoapFile<T>(string file)
{
return DeserializeFromSoap<T>(File.ReadAllText(file));
}
public static T DeserializeFromSoap<T>(string soap)
{
if (string.IsNullOrEmpty(soap))
return default(T);
return SoapFormatterDeserialize<T>(soap);
}
private static T SoapFormatterDeserialize<T>(string soap)
{
using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(soap))) {
SoapFormatter val = new SoapFormatter();
val.set_Binder((SerializationBinder)new RdcFileSerializationBinder(typeof(T).Assembly));
return (T)val.Deserialize((Stream)memoryStream);
}
}
}
}