Как теперь получить данные из фида OData, используя Reactive Extensions без IEvent? - PullRequest
1 голос
/ 17 июля 2011

Кажется, что команда Reactive Extensions в Microsoft удалила интерфейс IEvent из библиотеки, и теперь следующий код, который работал до недавнего времени, не компилируется:

using ODataServiceReference;
public static IObservable<IEvent<LoadCompletedEventArgs>> GetInvoices(Uri uri)
{
    var context = new ODataEntities(uri);
    var invoices = new DataServiceCollection<ODataEntities.Invoice>(context);

    var observable = Observable.FromEvent<LoadCompletedEventArgs>(
                                i => invoices.LoadCompleted += i,
                                 i => invoices.LoadCompleted -= i);

    var query = from i in context.Invoices
        select i;

    invoices.LoadAsync(query);
    return observable;
}

Я пытаюсь найти лучший способ получитьрезультат запроса от объекта DataServiceCollection служб данных WCF.Есть мысли?

1 Ответ

2 голосов
/ 17 июля 2011

Просто измените Observable.FromEvent на Observable.FromEventPattern, и вы должны будете снова скомпилировать.

Вы можете однако вы захотите выбрать только хорошие биты:

var eventxs = Observable.FromEvent<LoadCompletedEventArgs>(
                                i => invoices.LoadCompleted += i,
                                 i => invoices.LoadCompleted -= i);
var observable = eventxs.Select(ep => ep.EventArgs.Data);
...