Minor changes to L1 - Product objects now disposed in this layer given that is where they are
created. This would cause L2 tests to fail but currently doesn't because the dispose code for the
Product is not implemented yet.
Added WatchableProxy<T> class to allow IWatchable<T> objects to be exposed to higher
layers.
Updated L2 to correcbtly handle disposing of watchables in lower layers.
Updated the classes in WatchableServiceOpenHomeOrgProduct1.cs so that the Dispose method is correctly implemented.
Moved some classes into different files.
L3 (and probably above) tests are now broken
Added ITopologyObject interface to define the Detach and Dispose
methods for topology objects that are passed between layers.
Updated L3 to use the new way of handling object disposal and detachment. No further
need for the RefCount code. L3 tests now working again - L4 is temporarily broken.
Minor change to L2 test program
Updated L4 to work with the new detach/dispose paradigm. All tests now pass.
Removed old WatchableRelay class from L5 and used the common WatchableProxy class.