August 2003
Intermediate to advanced
928 pages
32h 1m
English
GCHandle
This class is used when you need to
pass a managed
object to unmanaged code. To use this class, pass an instance of a
.NET-managed type to the Alloc( ) method. The
single-argument form of Alloc( ) creates the
GCHandle with
GCHandleType.Normal, which ensures that the object
will not be freed by the garbage collector. (This means that some
kind of user code must also call the Free( )
method in order to release the object.) Managed code can use the
Target property to access the underlying object.
public struct GCHandle { // Public Instance Properties public bool IsAllocated{get; } public object Target{set; get; } // Public Static Methods public static GCHandle Alloc(objectvalue); public static GCHandle Alloc(objectvalue, GCHandleTypetype); public static explicit operator GCHandle(IntPtrvalue); public static explicit operator IntPtr(GCHandlevalue); // Public Instance Methods public IntPtr AddrOfPinnedObject( ); public void Free( ); }
System.Object
→
System.ValueType
→
GCHandle