Deserialize to type whose namespace has changed
Asked Answered
D

1

6

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?

Dees answered 12/10, 2011 at 13:59 Comment(3)
Not sure if this can solve your problem since I never actually used it, but I remember reading up on TypeForwarding some time ago: you can find the info here: msdn.microsoft.com/en-us/library/ms404275.aspxShowman
Interesting. I'll check it out.Dees
A Google search found this which might help: codeproject.com/KB/cs/…Claudy
S
1

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.

Silber answered 12/10, 2011 at 16:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.