public void TestAttachAndDetach()
        {
            var h = new EventHost ();
            Assert.IsFalse (h.HasStandardEvent, "#1");
            var source = Observable.FromEventPattern<EventArgs> (h, "StandardEvent");
            Assert.IsFalse (h.HasStandardEvent, "#2"); // not subscribed yet
            bool received = false;
            var dis = source.Subscribe (v => received = true);
            Assert.IsTrue (h.HasStandardEvent, "#3");
            Assert.IsFalse (received, "#4");

            h.FireStandardEvent ();
            Assert.IsTrue (received, "#5");
            dis.Dispose (); // unsubscribe event handler
            Assert.IsFalse (h.HasStandardEvent, "#6");
        }
        public void TestAttachAndDetach()
        {
            var h = new EventHost();

            Assert.IsFalse(h.HasStandardEvent, "#1");
            var source = Observable.FromEventPattern <EventArgs> (h, "StandardEvent");

            Assert.IsFalse(h.HasStandardEvent, "#2");              // not subscribed yet
            bool received = false;
            var  dis      = source.Subscribe(v => received = true);

            Assert.IsTrue(h.HasStandardEvent, "#3");
            Assert.IsFalse(received, "#4");

            h.FireStandardEvent();
            Assert.IsTrue(received, "#5");
            dis.Dispose();              // unsubscribe event handler
            Assert.IsFalse(h.HasStandardEvent, "#6");
        }