代码之家  ›  专栏  ›  技术社区  ›  mnwsmit

Observable.FromEvent<>无法与Umbraco ContentService一起工作。已发布

  •  2
  • mnwsmit  · 技术社区  · 11 年前

    我正在尝试使用Rx:

    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<>?

    1 回复  |  直到 11 年前
        1
  •  0
  •   mnwsmit    11 年前

    根据Enigmatity的建议,这是可行的解决方案:

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