InvalidCastException al serializar y deserializar
Tengo este codigo
public byte[] SerializeToBlob()
{
using (var buffer = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(buffer, this);
buffer.Position = 0;
return buffer.ToArray();
}
}
public static ActionData DeserializeFromBlob(byte[] state)
{
using (var buffer = new MemoryStream(state))
{
var formatter = new BinaryFormatter();
var result = formatter.Deserialize(buffer);
return (ActionData) result;
}
}
Y lo estoy llamando de la siguiente manera:
byte[] actionDataBlob = ad.SerializeToBlob();
var ad1 = ActionData.DeserializeFromBlob(actionDataBlob);
Sin embargo, obtengo una excepción InvalidCastException cuando intenta convertir el objeto deserializado a su tipo:
[A] ActionData no se puede convertir a [B] ActionData. El Tipo A se origina en 'XXXX.XXXX.Auditing, Version = 1.0.76.0, Culture = neutral, PublicKeyToken = null' en el contexto 'Default' en la ubicación 'C: \ Users \ Craig \ AppData \ Local \ Temp \ Temporal ASP. Archivos NET \ root \ 5d978e5b \ ffc57fe1 \ assembly \ dl3 \ 2b1e5f8f \ 102c846e_9506ca01 \ XXXX.XXXX.Auditing.DLL '. El tipo B se origina en 'XXXX.XXXX.Auditing, Version = 1.0.76.0, Culture = neutral, PublicKeyToken = null' en el contexto 'LoadNeither' en la ubicación 'F: \ Visual Studio Projects \ XXXXXXXXX \ source \ XXXX.XXXX.SilverlightClient .Web \ bin \ XXXX.XXXX.Auditing.dll '.
(XXXX.XXXX está ahí para ocultar el nombre del cliente)
¿Lo que da?
Ahora he hecho una pregunta relacionada aquí:
¿Cómo debo serializar algunos datos de auditoría simples para almacenar en una tabla SQL?