<PackageReference Include="System.Reactive" Version="4.2.0-preview.566" />

FromEvent<TDelegate, TEventArgs>

sealed class FromEvent<TDelegate, TEventArgs> : ClassicEventProducer<TDelegate, TEventArgs>
using System.Reactive.Concurrency; namespace System.Reactive.Linq.ObservableImpl { internal sealed class FromEvent<TDelegate, TEventArgs> : ClassicEventProducer<TDelegate, TEventArgs> { private readonly Func<Action<TEventArgs>, TDelegate> _conversion; public FromEvent(Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler) : base(addHandler, removeHandler, scheduler) { } public FromEvent(Func<Action<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler) : base(addHandler, removeHandler, scheduler) { _conversion = conversion; } protected override TDelegate GetHandler(Action<TEventArgs> onNext) { TDelegate val = default(TDelegate); if (_conversion != null) return _conversion(onNext); return ReflectionUtils.CreateDelegate<TDelegate>((object)onNext, typeof(Action<TEventArgs>).GetMethod("Invoke")); } } }