<PackageReference Include="System.Memory" Version="4.5.0-preview2-26406-04" />

MemoryHandle

public struct MemoryHandle : IDisposable
using System.Runtime.InteropServices; namespace System.Buffers { public struct MemoryHandle : IDisposable { private unsafe void* _pointer; private GCHandle _handle; private IPinnable _pinnable; [CLSCompliant(false)] public unsafe void* Pointer { get { return _pointer; } } [CLSCompliant(false)] public unsafe MemoryHandle(void* pointer, GCHandle handle = default(GCHandle), IPinnable pinnable = null) { _pointer = pointer; _handle = handle; _pinnable = pinnable; } public unsafe void Dispose() { if (_handle.IsAllocated) _handle.Free(); if (_pinnable != null) { _pinnable.Unpin(); _pinnable = null; } _pointer = null; } } }