The following figure shows how the session object chain, which is anchored to the SESSION system handle using the FIRST-OBJECT and LAST-OBJECT attributes, works for .NET objects. You can walk the session object chain for both ABL and .NET objects using the NEXT-SIBLING and PREV-SIBLING properties of Progress.Lang.Object.
Although .NET class instances appear on the ABL session object chain, the actual working instance of each object that ABL references is created in the .NET CLR. (For more information on how this works, see
GUIfor .NET run-time architecture.) In addition, because all .NET classes are subclasses of
Progres.Lang.Object, for any .NET class that has a member with the same name as a corresponding member defined by
Progres.Lang.Object, the .NET version overrides the
Progres.Lang.Object version. For example, the
ToString( ) method on the .NET
System.Object always overrides the ToString( ) method on
Progress.Lang.Object. Thus, .NET classes in an ABL session follow all the same overriding rules as ABL classes.