System.reactive 系统反应性:实现IObservable<;T>;

System.reactive 系统反应性:实现IObservable<;T>;,system.reactive,System.reactive,我需要创建一个自定义的IObservable。我在那边读了一点,结果我不应该直接实现IObservable 我注意到有一个可观察数据库。这是一个抽象类,因此我需要实现抽象方法: public class Store<TState> : ObservableBase<TState>, IObserver<IAction> { public void OnCompleted() { throw new NotImplementedE

我需要创建一个自定义的
IObservable
。我在那边读了一点,结果我不应该直接实现
IObservable

我注意到有一个
可观察数据库
。这是一个抽象类,因此我需要实现抽象方法:

public class Store<TState> : ObservableBase<TState>, IObserver<IAction>
{
    public void OnCompleted()
    {
        throw new NotImplementedException();
    }

    public void OnError(Exception error)
    {
        throw new NotImplementedException();
    }

    public void OnNext(IAction value)
    {
        throw new NotImplementedException();
    }

    protected override IDisposable SubscribeCore(IObserver<TState> observer)
    {
        >>>>>>>>>>>>>>>>>******<<<<<<<<<<<<<<<<<<<<<<<
        throw new NotImplementedException();
    }
}
公共类存储:Observebase,IObserver
{
未完成的公共无效()
{
抛出新的NotImplementedException();
}
公共无效OnError(异常错误)
{
抛出新的NotImplementedException();
}
public void OnNext(IAction值)
{
抛出新的NotImplementedException();
}
受保护的覆盖IDisposable SubscribeCore(IObserver观察员)
{

>>>>>>>>>>>>>>>>>****** 我不知道您的问题,但是如果您可以替换实现
IObservable
来公开返回
IObservable
的属性/方法,您的境况会好得多。如果您能够做到这一点,您可以很容易地从一些数据库返回基于Rx的可观测值

如果您不能这样做,我建议您包装一个
主题

公共类MyInObservable:IObservable
{
私有只读主题_mySubject=新主题();
公共IDisposable订阅(IObserver观察员)
{
return _mySubject.Subscribe(观察者);
}
}

我不知道您的问题,但是如果您可以替换实现
IObservable
来公开返回
IObservable
的属性/方法,您的境况会好得多。如果您能够做到这一点,您可以很容易地从一些应用程序返回基于Rx的可观测值

如果您不能这样做,我建议您包装一个
主题

公共类MyInObservable:IObservable
{
私有只读主题_mySubject=新主题();
公共IDisposable订阅(IObserver观察员)
{
return _mySubject.Subscribe(观察者);
}
}

我猜你不想做你正在做的事情

简单看一下您想要模拟的“Store”类,它似乎是某种
Subject
。一个
Subject
既是一个
IObserver
又是一个
IObservable
,有许多现成的实现。下面是界面:

public interface ISubject<in TSource, out TResult> : IObserver<TSource>, IObservable<TResult>
{
}
公共接口主体:IObserver,IObservable
{
}
这是一篇关于主题以及何时在此处使用主题的非常好的文章:
我猜你不想做你正在做的事情

简单看一下您想要模拟的“Store”类,它似乎是某种
Subject
。一个
Subject
既是一个
IObserver
又是一个
IObservable
,有许多现成的实现。下面是界面:

public interface ISubject<in TSource, out TResult> : IObserver<TSource>, IObservable<TResult>
{
}
公共接口主体:IObserver,IObservable
{
}
这是一篇关于主题以及何时在此处使用主题的非常好的文章:

我将尝试更深入地解释一下我想要得到什么…有一个使用angular的Redux“模式”实现,名为ngrx。这个库提供了一个非常优雅的Redux实现,我喜欢,所以我尝试“翻译/移植”我现在要翻译的主要类是。你可以忽略
lift
replaceReducer
和其他类来关注
next
completed
,…关于我们评论的所有内容有什么想法吗?对不起,我没有完全理解你,我不确定这与原始问题有什么关系n、 我将尝试更深入地解释我想要得到的…有一个使用angular的Redux“模式”实现,称为ngrx。这个库提供了一个非常优雅的Redux实现,符合我的口味,所以我尝试“翻译/移植”我现在要翻译的主要类是。你可以忽略
lift
replaceReducer
和其他类来关注
next
completed
,…关于我们评论的所有内容有什么想法吗?对不起,我没有完全理解你,我不确定这与原始问题有什么关系N