Marshals the COM IDispatch interface to the .NET Framework IEnumerable interface, and vice versa.
Assembly: CustomMarshalers (in CustomMarshalers.dll)
Thetype exposes the following members.
|CleanUpManagedData||Performs necessary cleanup of the managed data when it is no longer needed.|
|CleanUpNativeData||Performs necessary cleanup of the unmanaged data when it is no longer needed.|
|Equals(Object)||Determines whether the specified object is equal to the current object. (Inherited from Object.)|
|GetHashCode||Serves as the default hash function. (Inherited from Object.)|
|GetInstance||Returns an instance of the custom marshaler.|
|GetNativeDataSize||Returns the size in bytes of the unmanaged data to be marshaled.|
|GetType||Gets the Type of the current instance. (Inherited from Object.)|
|MarshalManagedToNative||Marshals an object from managed code to unmanaged code.|
|MarshalNativeToManaged||Marshals an object from unmanaged code to managed code.|
|MemberwiseClone||Creates a shallow copy of the current Object. (Inherited from Object.)|
|ToString||Returns a string that represents the current object. (Inherited from Object.)|
This custom marshaler marshals IDispatch to IEnumerable and marshals IEnumerable to IDispatch when a member with a DISPID of -4 exists. When you use the Type Library Importer (Tlbimp.exe) to create a class that implements IEnumerable , the CLR uses this custom marshaler automatically to bridge COM enumerators and .NET enumerators. Calling GetEnumerator results in IDispatch.Invoke being called with a DISPID of -4, and vice versa.