I am persisting objects to a database using the BinaryFormatter. When inserting new objects, I call BinaryFormatter.Serialize and store the object as a byte array in a database table. When getting an object out of the table I use BinaryFormatter.Deserialize to convert the byte array back into the object. If the version of the assembly containing the serializable type changes, can the serialized object in the database be deserialized with the newer version. In other words, is there any way to deserialize objects that were originally serialized under a different version number, as long as the type's interface hasn't changed? Is this even an appropriate use of the BinaryFormatter, since it is typically used for ephemeral objects and not persistence?
I've tried using the <assemblyBinding> config section, but in my tests, deserialization is ignoring the assembly version redirection. You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.
