InvalidCastException ao serializar e desserializar

Eu tenho este código:

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;
    }
}

E estou chamando assim:

byte[] actionDataBlob = ad.SerializeToBlob();
var ad1 = ActionData.DeserializeFromBlob(actionDataBlob);

No entanto, recebo um InvalidCastException quando ele tenta converter o objeto desserializado para seu tipo:

[A] ActionData não pode ser convertido em [B] ActionData. Tipo A origina de 'XXXX.XXXX.Auditing, versão = 1.0.76.0, Culture = neutral, PublicKeyToken = null' no contexto 'padrão' no local 'C: \ Users \ Craig \ AppData \ local \ Temp \ ASP temporário. NET Files \ root \ 5d978e5b \ ffc57fe1 \ assembly \ dl3 \ 2b1e5f8f \ 102c846e_9506ca01 \ XXXX.XXXX.Auditing.DLL '. O tipo B é originado em 'XXXX.XXXX.Auditing, Version = 1.0.76.0, Culture = neutral, PublicKeyToken = null' no contexto 'LoadNeither' no local 'F: \ Projetos do Visual Studio \ XXXXXXXXX \ source \ XXXX.XXXX.SilverlightClient .Web \ bin \ XXXX.XXXX.Auditing.dll '.

(XXXX.XXXX está lá para obscurecer o nome do cliente)

O que da?

Eu agora fiz uma pergunta relacionada aqui:

Como devo serializar alguns dados de auditoria simples para armazenar em uma tabela SQL?

questionAnswers(6)

yourAnswerToTheQuestion