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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions