当前位置: 首页>>代码示例>>C#>>正文


C# MessageBus.Unregister方法代码示例

本文整理汇总了C#中MessageBus.Unregister方法的典型用法代码示例。如果您正苦于以下问题:C# MessageBus.Unregister方法的具体用法?C# MessageBus.Unregister怎么用?C# MessageBus.Unregister使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MessageBus的用法示例。


在下文中一共展示了MessageBus.Unregister方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: TestUnregisterOneAction

        public void TestUnregisterOneAction()
        {
            const string testContentA1 = "abcd";
            const string testContentA2 = "efgh";

            Reset();
            IMessageBus messageBus = new MessageBus();

            Action<TestMessageA> actionA1 = m => ReceivedContentStringA1 = m.Content;

            messageBus.Register(this, TestConstants.MyContentToken, actionA1);

            Assert.AreEqual(null, ReceivedContentStringA1);

            messageBus.Send(new TestMessageA
            {
                Content = testContentA1
            }, TestConstants.MyContentToken);

            Assert.AreEqual(testContentA1, ReceivedContentStringA1);

            messageBus.Unregister(this, TestConstants.MyContentToken, actionA1);

            messageBus.Send(new TestMessageA
            {
                Content = testContentA2
            }, TestConstants.MyContentToken);

            Assert.AreNotEqual(testContentA2, ReceivedContentStringA1);
        }
开发者ID:phiree,项目名称:dzdocs,代码行数:30,代码来源:MessengerRegisterUnregisterTest.cs

示例2: InnerListHasOneItemAfterUnregisterIsCalledForSpecificActionWhereTwoActionsRegisteredForOneToken

        public void InnerListHasOneItemAfterUnregisterIsCalledForSpecificActionWhereTwoActionsRegisteredForOneToken()
        {
            const string testContent1 = "efgh";
            const string testContent2 = "mnop";
            const int token = 4567;

            Reset();
            IMessageBus messageBus = new MessageBus();

            Action<string> action1 = m => ReceivedContentStringA = m;
            Action<string> action2 = m => ReceivedContentStringB = m;

            messageBus.Register(this, token, action1);
            messageBus.Register(this, token, action2);

            messageBus.Send(testContent1, token);

            Assert.AreEqual(testContent1, ReceivedContentStringA);
            Assert.AreEqual(testContent1, ReceivedContentStringB);

            messageBus.Unregister(this, token, action2); // only unregister action2. Leave action1.

            var type = typeof(MessageBus);

            // _commandCollection is an instance, private member
            BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;

            // Retrieve a FieldInfo instance corresponding to the field
            FieldInfo field = type.GetField("_recipientsStrictAction", flags);

            var innerRecipientsDictionary = field.GetValue(messageBus) as Dictionary<Type, List<MessageBus.WeakActionAndToken>>;

            messageBus.Send(testContent2, token);

            Assert.AreEqual(testContent2, ReceivedContentStringA);
            Assert.AreEqual(testContent1, ReceivedContentStringB);
            Assert.IsTrue(innerRecipientsDictionary.Count == 1);
        }
开发者ID:phiree,项目名称:dzdocs,代码行数:38,代码来源:MessengerRegisterUnregisterTest.cs

示例3: TestUnRegisterObjectOnlyOverloadWithOneHandler

        public void TestUnRegisterObjectOnlyOverloadWithOneHandler()
        {
            const string testContentString = "abcd";
            const string testContentStringAfterUnregister = "efgh";

            Reset();
            IMessageBus messageBus = new MessageBus();

            messageBus.Register<string>(this, TestConstants.MyStringToken, m => ReceivedContentStringA1 = m);

            Assert.AreEqual(null, ReceivedContentStringA1);

            messageBus.Send(testContentString, TestConstants.MyStringToken);

            Assert.AreEqual(testContentString, ReceivedContentStringA1);

            messageBus.Unregister<string>(this); // Use overload which just uses object

            messageBus.Send(testContentStringAfterUnregister, TestConstants.MyStringToken);

            Assert.AreNotEqual(testContentStringAfterUnregister, ReceivedContentStringA1);
        }
开发者ID:phiree,项目名称:dzdocs,代码行数:22,代码来源:MessengerRegisterUnregisterTest.cs

示例4: TestUnRegisterObjectOnlyOverloadWithMoreThanOneHandler

        public void TestUnRegisterObjectOnlyOverloadWithMoreThanOneHandler()
        {
            const string testContentString1 = "abcd1";
            const string testContentString2 = "abcd2";
            const string testContentStringAfterUnregister = "efgh";

            Action<string> action1 = m => ReceivedContentStringA = m;
            Action<string> action2 = m => ReceivedContentStringA1 = m;
            Action<string> action3 = m => ReceivedContentStringB = m;

            Reset();
            IMessageBus messageBus = new MessageBus();

            messageBus.Register<string>(this, TestConstants.MyStringToken, action1);
            messageBus.Register<string>(this, TestConstants.MyStringToken, action2);
            messageBus.Register<string>(this, TestConstants.MyContentToken, action3);

            Assert.AreEqual(null, ReceivedContentStringA);
            Assert.AreEqual(null, ReceivedContentStringA1);
            Assert.AreEqual(null, ReceivedContentStringB);

            messageBus.Send(testContentString1, TestConstants.MyStringToken);
            messageBus.Send(testContentString2, TestConstants.MyContentToken);

            Assert.AreEqual(testContentString1, ReceivedContentStringA);
            Assert.AreEqual(testContentString1, ReceivedContentStringA1);
            Assert.AreEqual(testContentString2, ReceivedContentStringB);

            messageBus.Unregister<string>(this); // Use overload which just uses object

            messageBus.Send(testContentStringAfterUnregister, TestConstants.MyStringToken);
            messageBus.Send(testContentStringAfterUnregister, TestConstants.MyContentToken);

            Assert.AreNotEqual(testContentStringAfterUnregister, ReceivedContentStringA1);
            Assert.AreNotEqual(testContentStringAfterUnregister, ReceivedContentStringB);
        }
开发者ID:phiree,项目名称:dzdocs,代码行数:36,代码来源:MessengerRegisterUnregisterTest.cs

示例5: TestRegisterUnregisterWithToken

        public void TestRegisterUnregisterWithToken()
        {
            const string testContent1 = "abcd";
            const string testContent2 = "efgh";
            const string testContent3 = "ijkl";
            const int token1 = 1234;
            const int token2 = 4567;

            Reset();
            IMessageBus messageBus = new MessageBus();

            messageBus.Register<string>(this, token1, m => ReceivedContentStringA1 = m);
            messageBus.Register<string>(this, token2, m => ReceivedContentStringA = m);

            Assert.AreEqual(null, ReceivedContentStringA1);
            Assert.AreEqual(null, ReceivedContentStringA);

            messageBus.Send(testContent1, token1);

            Assert.AreEqual(testContent1, ReceivedContentStringA1);
            Assert.AreEqual(null, ReceivedContentStringA);

            messageBus.Send(testContent2, token2);

            Assert.AreEqual(testContent1, ReceivedContentStringA1);
            Assert.AreEqual(testContent2, ReceivedContentStringA);

            messageBus.Unregister<string>(this, token1);
            messageBus.Send(testContent3, token1);

            Assert.AreEqual(testContent1, ReceivedContentStringA1);
            Assert.AreEqual(testContent2, ReceivedContentStringA);
        }
开发者ID:phiree,项目名称:dzdocs,代码行数:33,代码来源:MessengerRegisterUnregisterTest.cs

示例6: TestRegisterUnregisterOneActionWithToken

        public void TestRegisterUnregisterOneActionWithToken()
        {
            const string testContent1 = "abcd";
            const string testContent2 = "efgh";
            const string testContent3 = "ijkl";
            const string testContent4 = "mnop";
            const int token1 = 1234;
            const int token2 = 4567;

            Reset();
            IMessageBus messageBus = new MessageBus();

            Action<string> action1 = m => ReceivedContentStringA1 = m;
            Action<string> action2 = m => ReceivedContentStringA = m;
            Action<string> action3 = m => ReceivedContentStringB = m;

            messageBus.Register(this, token1, action1);
            messageBus.Register(this, token2, action2);
            messageBus.Register(this, token2, action3);

            messageBus.Send(testContent1, token1);
            messageBus.Send(testContent2, token2);

            Assert.AreEqual(testContent1, ReceivedContentStringA1);
            Assert.AreEqual(testContent2, ReceivedContentStringA);
            Assert.AreEqual(testContent2, ReceivedContentStringB);

            messageBus.Unregister(this, token2, action3);
            messageBus.Send(testContent3, token1);
            messageBus.Send(testContent4, token2);

            Assert.AreEqual(testContent3, ReceivedContentStringA1);
            Assert.AreEqual(testContent4, ReceivedContentStringA);
            Assert.AreEqual(testContent2, ReceivedContentStringB);
        }
开发者ID:phiree,项目名称:dzdocs,代码行数:35,代码来源:MessengerRegisterUnregisterTest.cs

示例7: InnerListIsEmptyAfterUnregisterIsCalledWhereTwoActionsRegisteredForOneToken

        public void InnerListIsEmptyAfterUnregisterIsCalledWhereTwoActionsRegisteredForOneToken()
        {
            const int token2 = 4567;

            Reset();
            IMessageBus messageBus = new MessageBus();

            Action<string> action2 = m => ReceivedContentStringA = m;
            Action<string> action3 = m => ReceivedContentStringB = m;

            messageBus.Register(this, token2, action2);
            messageBus.Register(this, token2, action3);

            //  Only unregister token2 and don't specify an action
            messageBus.Unregister<string>(this, token2);

            var type = typeof(MessageBus);

            // _commandCollection is an instance, private member
            BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;

            // Retrieve a FieldInfo instance corresponding to the field
            FieldInfo field = type.GetField("_recipientsStrictAction", flags);

            var innerRecipientsDictionary = field.GetValue(messageBus) as Dictionary<Type, List<MessageBus.WeakActionAndToken>>;

            Assert.IsFalse(innerRecipientsDictionary.Any());
        }
开发者ID:phiree,项目名称:dzdocs,代码行数:28,代码来源:MessengerRegisterUnregisterTest.cs


注:本文中的MessageBus.Unregister方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。