Dmitry. Sorry, but I disbelieve. ;)
Maybe I can intercept the ctor call, and return my object instead of the new one.
This stuff is not rocket science, it is programming. MS may try to hide stuff, but in the end, it is usually there, somewhere.
Thank you, you got me thinking into areas I had not previously thought of.
--------
This may require learning some IL, but from what I have [
seen] it looks like the call pushes 'this' onto the stack, then makes the call. If I have 'this', as well as the old one, I can push the old one on, instead of 'this'. That could allow the constructor/deserialiser to unroll onto the old object.
--------
New question: Anyone know how to use IL in C#, and how to use reflection to hijack method calls?
Yeah, yeah, I know. :( Google it.