<PackageReference Include="System.Reactive" Version="6.0.2" />

AnonymousObservable<T>

public sealed class AnonymousObservable<T> : ObservableBase<T>
Class to create an IObservable<T> instance from a delegate-based implementation of the Subscribe method.
using System.Reactive.Disposables; using System.Runtime.CompilerServices; namespace System.Reactive { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] public sealed class AnonymousObservable<[System.Runtime.CompilerServices.Nullable(2)] T> : ObservableBase<T> { private readonly Func<IObserver<T>, IDisposable> _subscribe; public AnonymousObservable(Func<IObserver<T>, IDisposable> subscribe) { if (subscribe == null) throw new ArgumentNullException("subscribe"); _subscribe = subscribe; } protected override IDisposable SubscribeCore(IObserver<T> observer) { return _subscribe(observer) ?? Disposable.Empty; } } }