public void Dispose() { var observer = Interlocked.Exchange(ref _observer, null); if (observer != null) { _subject.UnsubscribeCore(observer); _subject = null; } }
public void Should_read_a_reference_type_property() { var property = new ReadOnlyProperty(typeof(Subject).GetProperty("Inner")); var innerSubject = new InnerSubject(); var subject = new Subject {Inner = innerSubject}; object value = property.Get(subject); Assert.AreEqual(innerSubject, value); }
private static InnerSubject <int> GetSubject(Uri id, MiniService svc) { var sch = new MiniScheduler(); var ctx = CreateOperatorContext(id, svc, sch); var subject = new InnerSubject <int>(); subject.SetContext(ctx); subject.Start(); return(subject); }
public override int GetHashCode() { return InnerSubject.GetHashCode(); }
public override bool Equals(object obj) { return InnerSubject.Equals(obj); }
public override string ToString() { return InnerSubject.ToString(); }
public Observer(InnerSubject <T> subject) => _subject = subject;
public Subscription(InnerSubject <T> subject, IObserver <T> observer) { _subject = subject; _observer = observer; }