Skip to content

Observable.fromEventConversion have wrong generic signature #168

@shirok1

Description

@shirok1

I'm trying to convert GlobalSystemMediaTransportControlsSession.MediaPropertiesChanged to IObservable. However, it delegates a TypedEventHandler, not EventArgs, so a conversion is needed and ...

let conversion (handler: EventHandler<_>) : Windows.Foundation.TypedEventHandler<_, _> =
    Windows.Foundation.TypedEventHandler(fun s e -> handler.Invoke(s, e))

Observable.fromEventConversionOn
    Scheduler.Scheduler.EventLoop
    conversion
    session.add_MediaPropertiesChanged
    session.remove_MediaPropertiesChanged

// Following doesn't compile
Observable.fromEventConversion
    conversion
    session.add_MediaPropertiesChanged
    session.remove_MediaPropertiesChanged

In decompiler:

image

I also wonder if there is better solution (for TypedEventHandler), Observable.fromEventGeneric doesn't work.

Type constraint mismatch. The type ''a -> unit' is not compatible with type 'Windows.Foundation.TypedEventHandler<GlobalSystemMediaTransportControlsSession,MediaPropertiesChangedEventArgs>'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions