InvalidCastException podczas serializacji i deserializacji

Mam ten kod:

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

I nazywam to następująco:

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

Jednak otrzymuję wyjątek InvalidCastException, gdy próbuje rzutować zserializowany obiekt na jego typ:

[A] ActionData nie może być rzutowane na [B] ActionData. Typ A pochodzi z 'XXXX.XXXX.Auditing, Version = 1.0.76.0, Culture = neutral, PublicKeyToken = null' w kontekście 'Default' w lokalizacji 'C: Users Craig AppData Local Temporary Tymczasowa ASP. Pliki NET root 5d978e5b ifc57fe1 assembly dl3 2b1e5f8f 102c846e_9506ca01 XXXX.XXXX.Auditing.DLL ”. Typ B pochodzi z 'XXXX.XXXX.Auditing, Version = 1.0.76.0, Culture = neutral, PublicKeyToken = null' w kontekście 'LoadNeither' w lokalizacji 'F: Visual Studio Projects XXXXXXXXX źródło XXXX.XXXX.SilverlightClient .Web bin XXXX.XXXX.Auditing.dll '.

(XXXX.XXXX ma ukryć nazwę klienta)

Co daje?

Zadałem tutaj powiązane pytanie:

Jak należy serializować niektóre proste dane inspekcji do przechowywania w tabeli SQL?

questionAnswers(6)

yourAnswerToTheQuestion