Comment faire passer ce test sans utiliser la classe Subject ou .NET events?Comment créer un IObservable qui émet lors d'un appel de méthode, sans utiliser de Sujets ou d'événements .NET?
[TestClass]
public class ObservableTests
{
private readonly Subject<Unit> _subject = new Subject<Unit>();
[TestMethod]
public void ObservesMethodCall()
{
var eventCount = 0;
IObservable<Unit> observable = _subject.AsObservable();
observable.Subscribe(u => eventCount++);
Assert.AreEqual(0, eventCount);
Foo();
Assert.AreEqual(1, eventCount);
}
private void Foo()
{
_subject.OnNext(Unit.Default);
}
}
Je veux éviter d'utiliser subjects comme they are not recommended. Je ne veux pas utiliser les événements .NET lorsque RxNet les remplace.
questions connexes:
Firing an event every time a new method is called
Il suppose que nous ne pouvons pas modifier la méthode appelée.
How to create Observable that emits every time a member variable is updated (onCompleted never called)
Utilise des sujets.
Is there a way to create an observable sequence triggered by method calls without using Subject?
États Les sujets sont la voie à suivre. Cependant, je veux toujours apprendre comment le faire sans Sujets.
IObserver and IObservable in C# for Observer vs Delegates, Events
Indique comment résoudre le problème en mettant en œuvre la coutume IObservable
Pouvez-vous expliquer comment cela fonctionne? – VMAtm
@VMAtm - De quel bit n'êtes-vous pas sûr? Le 'FromEvent'? – Enigmativity
Oui, je ne comprends pas la duplication là. – VMAtm