<PackageReference Include="NETStandard.Library" Version="2.0.0" />

System.Runtime.InteropServices.SafeHandle

namespace System.Runtime.InteropServices { public abstract class SafeHandle : CriticalFinalizerObject, IDisposable { protected IntPtr handle; public bool IsClosed { get; } public abstract bool IsInvalid { get; } protected SafeHandle(IntPtr invalidHandleValue, bool ownsHandle); public void Close(); public void DangerousAddRef(ref bool success); public IntPtr DangerousGetHandle(); public void DangerousRelease(); public void Dispose(); protected virtual void Dispose(bool disposing); protected abstract bool ReleaseHandle(); protected void SetHandle(IntPtr handle); public void SetHandleAsInvalid(); } }