I’ve been reading Rockford Lhotka’s “Expert C# 2008 Business Objects”, where there is such a thing as a data portal which nicely abstracts where the data comes from. When using the DataPortal.Update(this), which as you might guess persists ‘this’ to the database, an object is returned – the persisted ‘this’ with any changes the db made to it, eg. a timestamp.
Lhotka has written often and very casually, that you have to make sure to update all references to the old object to the new returned object. Makes sense, but is there an easy way to find all references to the old object and change them? Obviously the GC tracks references, is it possible to tap into that?
Cheers
The GC doesn’t actually track the references to the objects. Instead, it calculates which objects are reachable starting from global and stack objects at the runtime, and executing some variant of “flood fill” algorithm.
Specifically for your problem, why not just have a proxy holding reference to the “real” object? This way you need to update at only one place.