OracleException не имеет ни открытых конструкторов, ни какого-либо способа получить новый экземпляр.Я попробовал свой класс XmlSerializerHelper, но он требует открытого конструктора без параметров.
Я использовал BinaryFormatter для сериализации OracleException и записал его в файл.
Как я могу сериализовать OracleException в файле, а также десериализовать, используя XmlSerializer - по причинам тестирования - ?.
Ссылка: http://geekswithblogs.net/WillSmith/archive/2008/07/25/testing-oracleexception.aspx
PD: лучше SoapFormatter или BinaryFormatter?
Код
SerializationHelper.Serialize(@"C:\Temp\ExcepcionOracle.bin", ex);
var exOra = SerializationHelper.Deserialize(@"C:\Temp\ExcepcionOracle.bin");
public static void Serialize(string fileName, Object obj)
{
var binaryFormatter = new BinaryFormatter();
var fileStream = new FileStream(fileName, FileMode.Create);
try
{
binaryFormatter.Serialize(fileStream, obj);
}
catch (SerializationException ex)
{
throw new ApplicationException("The object graph could not be serialized", ex);
}
finally
{
fileStream.Close();
}
}
public static object Deserialize(string fileName)
{
var binaryFormatter = new BinaryFormatter();
var fileStream = new FileStream(fileName, FileMode.Open);
try
{
fileStream.Seek(0, SeekOrigin.Begin);
return binaryFormatter.Deserialize(fileStream);
}
catch (SerializationException ex)
{
throw new ApplicationException("Serialization Exception: " + ex.Message);
}
finally
{
fileStream.Close();
}
return null;
}