A subclass of WeakReference that overrides GetHashCode and Equals so that the weak reference returns the same equality semantics as the object it wraps. This will always return the object's hash code and will return True for a Equals comparison of the object it is wrapping. If the object it is wrapping has finalized, Equals always returns false.