2

Notification クラスを使用するタイミングと理由を理解しようとしています。ToNotifier と FromNotifier に関連しているように見えますが、それらの使用方法については完全にはわかりません。

オブザーバブル シーケンスとオブザーバーの間のバインディングのような双方向を作成するためですか?

ありがとう、エギル。

4

3 に答える 3

2

マテリアライズと通知については、ここで少し書きました。

http://www.zerobugbuild.com/?p=47

また、ここでも使用しました:

http://social.msdn.microsoft.com/Forums/en-US/rx/thread/bbcc1af9-64b4-456b-9038-a540cb5f5de5

于 2013-05-09T22:04:06.863 に答える
2

私が個人的に使用Notification<T>したのは、複数のマージされたストリームで異常なエラー トラップを実行しなければならなかったときだけでした。

public class ImportantException : Exception {}

var src1 = new Subject<int>();
var src2 = new Subject<int>();  
var wrapped = Observable.Merge(src1.Materialize(), src2.Materialize());

var query = 
    from note in wrapped
    let fail = note.Kind == NotificationKind.OnError
    let ignorable = fail && !(note.Exception is ImportantException)
    where !fail || !ignorable
    select note;

using(query.Subscribe(Console.WriteLine))
{
    src1.OnNext(1);
    src2.OnNext(1);
    src1.OnError(new Exception());
    src2.OnError(new ImportantException());
}

したがって、基本的には、複数 (私の場合は数十) のマージされたストリームからの特定の種類のエラーのみをサブスクライバーに浸透させたいと考えていました。上記の非現実的な例の出力は次のとおりです。

OnNextNotification<int> { Value = 1 }
OnNextNotification<int> { Value = 1 }
OnErrorNotification<int> { Exception = (ImportantException) }

(そして、はい、構造体を使用して多少の調整を加えることでこれを複製できますがCatch、この形式で読み通す方が簡単であることがわかりました)

于 2013-04-29T15:32:41.633 に答える
1

アプリのサービスで Rx クエリを単体テストしようとしているときに、最近使い始めました。これで、テスト対象のサービス コールにを渡しTestScheduler、Rx クエリに でイベントを生成させることができます。これらのイベントは、インスタンスTestSchedulerのコレクションとして検査のために単体テストにアクセスできます。Notification<>この記事の「 Rx クエリのテスト」セクションでアプローチを確認できます。

于 2013-04-28T13:48:54.403 に答える