public MultiSlotResponseDetailedEnumerator(MultiSlotResponseDetailed multiSlotResponseDetailed) : base(BindConstructorArguments(multiSlotResponseDetailed), new Delete <MultiSlotResponseDetailedEnumerator>(DeleteMultiSlotDetailedEnumeratorAdapter)) { }
private static New <MultiSlotResponseDetailedEnumerator> BindConstructorArguments(MultiSlotResponseDetailed multiSlotResponseDetailed) { return(new New <MultiSlotResponseDetailedEnumerator>(() => { IntPtr result = CreateMultiSlotDetailedEnumeratorAdapter(multiSlotResponseDetailed.DangerousGetHandle()); GC.KeepAlive(multiSlotResponseDetailed); // Extend the lifetime of this handle because the delegate (and its data) is not stored on the heap. return result; })); }