<PackageReference Include="System.Reactive" Version="6.0.0-preview.16" />

System.Reactive.Disposables.SingleAssignmentDisposable

Represents a disposable resource which only allows a single assignment of its underlying disposable resource. If an underlying disposable resource has already been set, future attempts to set the underlying disposable resource will throw an InvalidOperationException.
namespace System.Reactive.Disposables { public sealed class SingleAssignmentDisposable : ICancelable, IDisposable { public bool IsDisposed { get; } public IDisposable Disposable { get; set; } public SingleAssignmentDisposable(); public void Dispose(); } }