Observable.FromEvent<>不使用Umbraco ContentService.Published

时间:2015-03-30 13:08:29

标签: c# events umbraco system.reactive

我正在尝试使用Rx连接Umbraco事件:

Observable.FromEvent<TypedEventHandler<IPublishingStrategy, PublishEventArgs<IContent>>, PublishEventArgs<IContent>>(
h => ContentService.Published += h, h => ContentService.Published -= h).Subscribe(Console.WriteLine);

但是在订阅时我从Rx内部获得了一个例外:

  

无法绑定到目标方法,因为其签名或安全透明度与委托类型的方法不兼容。

我可以使用一个不那么干净的解决方法:

var subject = new Subject<PublishEventArgs<IContent>>();
ContentService.Published += (sender, args) => subject.OnNext(args);
subject.Subscribe(Console.WriteLine);

但是,如何使用Observable.FromEvent&lt;&gt;连接它?

1 个答案:

答案 0 :(得分:0)

根据Enigmativity的建议,这是有效的解决方案:

Observable.FromEventPattern<TypedEventHandler<IPublishingStrategy, PublishEventArgs<IContent>>, PublishEventArgs<IContent>>
            (h => ContentService.Published += h, h => ContentService.Published -= h).Subscribe(Console.WriteLine);