如何在C#和System.Reactive中将基于事件的类替换为基于可观察的类?

问题描述

我有一堂课,上面有一些事件。目前,由于他们提出的好处,我决定转向“可观察的”。为了实现此目标,我引入了一个Observable属性,将其替换为事件之一。接下来,我将事件设置为“私有”,以限制类之外的访问。需要时,该事件在类内部使用函数进行调用。但是,我认为这样做可能是更好的方法。正确的做法是什么?顺便说一下,我是“ System.Reactive”的新手,所以如果我对该概念有误解,请澄清此事。我的代码如下:

public class MyClass
{
    public MyClass()
    {
        InformationSenderObservable=Observable.FromEventPattern<SolutionEventArg>(ev =>InformationSender += ev,ev => InformationSender -= ev);
    }
    private event EventHandler<SolutionEventArg> InformationSender;
    public IObservable<EventPattern<SolutionEventArg>> InformationSenderObservable { get; }

    internal void DoSomething()
    {
        // long calculation
        SendInformation();
    }

    private void SendInformation()
    {
        InformationSender?.Invoke(this,new SolutionEventArg()
            {
                InfoProxyData = GetDetailsForBestCompressedData(),ParallelProcess = parallelProcessing
            });
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)