Deserialize to type whose namespace has changed

827 Views Asked by At

Using .NET 4/C#...

I need to deserialize old config files that contain the serialized representation of a type named, say, ns1.X . The serialization has been done using BinaryFormatter.

The problem is, after a round of refactoring, the type X has been moved to a different namespace, say ns2.X .

I have tried creating a new empty ns1.X type that derives from ns2.X, and while this circumvents the 'Can't find type ns1.X' error, the properties in the deserialized object are all null. Also, no ctors get called in the process.

Any suggestions?

1

There are 1 best solutions below

0
On

You're going to need to use an ISerializationSurregate to make this happen. It's not too difficult and Jeff Richter explains it really well. I recommend his book CLR Via c# 3.