Classes that derive from the abstract class System.MarshalByRefObject
are marshaled across NGWS Runtime context boundaries using proxies (that is, by reference) rather than through copying (that is, by value). This means that an instance of such a class may not be a true instance but instead may just be a stub that marshals data member accesses and method calls across a context boundary.
As a result, it is not possible to create a reference to the storage location of data members defined on such classes. This means that data members of classes derived from System.MarshalByRefObject
can not be passed to reference parameters, and methods and data members of data members typed as value types may not be accessed. To mitigate these restrictions, Visual Basic 7.0 treats data members defined on such classes as if they were properties (since the restrictions are the same on properties).