本文整理汇总了C#中Messenger.Publish方法的典型用法代码示例。如果您正苦于以下问题:C# Messenger.Publish方法的具体用法?C# Messenger.Publish怎么用?C# Messenger.Publish使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Messenger
的用法示例。
在下文中一共展示了Messenger.Publish方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AMessageIsRecievedJustOnceWithOneSubscriber
public void AMessageIsRecievedJustOnceWithOneSubscriber()
{
var callbackCount = 0;
var messenger = new Messenger();
var mockMessage = new Mock<Message>(this);
messenger.Subscribe<Message>(message => callbackCount++);
messenger.Publish(mockMessage.Object);
Assert.IsTrue(callbackCount == 1);
}
示例2: MessengerTest
public void MessengerTest()
{
var hub = new Messenger();
for (int i = 0; i < count; i++) {
hub.Subscribe<TestMessage>(_ => {
//do nothing
});
}
for (int i = 0; i < count; i++) {
hub.Publish (new TestMessage(this));
}
}
示例3: UnsubscribingDoesNotAffectOtherSubscribers
public void UnsubscribingDoesNotAffectOtherSubscribers()
{
var callbackCountOne = 0;
var callbackCountTwo = 0;
var messenger = new Messenger();
var mockMessage = new Mock<Message>(this);
Action<Message> messageHandlerOne = message => callbackCountOne++;
Action<Message> messageHandlerTwo = message => callbackCountTwo++;
messenger.Subscribe(messageHandlerOne);
messenger.Subscribe(messageHandlerTwo);
messenger.Publish(mockMessage.Object);
Assert.IsTrue(callbackCountOne == 1);
Assert.IsTrue(callbackCountTwo == 1);
messenger.Unsubscribe(messageHandlerOne);
messenger.Publish(mockMessage.Object);
Assert.IsTrue(callbackCountOne == 1);
Assert.IsTrue(callbackCountTwo == 2);
}
示例4: AMessageIsRecievedTwiceIfSubscribedTwice
public void AMessageIsRecievedTwiceIfSubscribedTwice()
{
var callbackCount = 0;
var messenger = new Messenger();
var mockMessage = new Mock<Message>(this);
Action<Message> messageHandler = message => callbackCount++;
messenger.Subscribe(messageHandler);
messenger.Subscribe(messageHandler);
messenger.Publish(mockMessage.Object);
Assert.IsTrue(callbackCount == 2);
}
示例5: MessageWithoutParameterIsReceived
public void MessageWithoutParameterIsReceived()
{
Messenger target = new Messenger();
bool received1 = false;
bool received2 = false;
target.Subscribe<Message>(m => received1 = true);
target.Subscribe<Message>(m => received2 = true);
target.Publish(Message.Empty);
Assert.IsTrue(received1);
Assert.IsTrue(received2);
}
示例6: MessageWithParameterIsReceived
public void MessageWithParameterIsReceived()
{
Messenger target = new Messenger();
TestMessage message = new TestMessage();
bool received1 = false;
bool received2 = false;
target.Subscribe<TestMessage>(m => received1 = (m == message));
target.Subscribe<TestMessage>(m => received2 = (m == message));
target.Publish(message);
Assert.IsTrue(received1);
Assert.IsTrue(received2);
}
示例7: UnsubscribingStopsMessagesBeingRecieved
public void UnsubscribingStopsMessagesBeingRecieved()
{
var callbackCount = 0;
var messenger = new Messenger();
var mockMessage = new Mock<Message>(this);
Action<Message> messageHandler = message => callbackCount++;
messenger.Subscribe(messageHandler);
messenger.Publish(mockMessage.Object);
Assert.IsTrue(callbackCount == 1);
messenger.Unsubscribe(messageHandler);
messenger.Publish(mockMessage.Object);
Assert.IsTrue(callbackCount == 1);
}
示例8: MessageWithoutParameterIsReceivedWrapped
public void MessageWithoutParameterIsReceivedWrapped()
{
Messenger target = new Messenger();
MessageSubscriber subscriber = new MessageSubscriber(target);
bool received1 = false;
bool received2 = false;
subscriber.Subscribe<Message>(m => received1 = true);
subscriber.Subscribe<Message>(m => received2 = true);
target.Publish(Message.Empty);
#if !SILVERLIGHT
DisplayContext.Current.Dispatcher.DoEvents();
#endif
Assert.IsTrue(received1);
Assert.IsTrue(received2);
}
示例9: StaticCallbackMethodIsInvoked
public void StaticCallbackMethodIsInvoked()
{
Messenger target = new Messenger();
_wasStaticCallbackMethodInvoked = false;
target.Subscribe<Message>(StaticCallbackMethod);
target.Publish(Message.Empty);
Assert.IsTrue(_wasStaticCallbackMethodInvoked);
}
示例10: NotifiedInRegistrationOrderWrapped
public void NotifiedInRegistrationOrderWrapped()
{
Messenger target = new Messenger();
MessageSubscriber subscriber = new MessageSubscriber(target);
int notificationCounter = 0;
int notified1 = 0;
int notified2 = 0;
subscriber.Subscribe<Message>(m => notified1 = ++notificationCounter);
subscriber.Subscribe<Message>(m => notified2 = ++notificationCounter);
target.Publish(Message.Empty);
#if !SILVERLIGHT
DisplayContext.Current.Dispatcher.DoEvents();
#endif
Assert.AreEqual(1, notified1);
Assert.AreEqual(2, notified2);
}
示例11: NotifiedInRegistrationOrder
public void NotifiedInRegistrationOrder()
{
Messenger target = new Messenger();
int notificationCounter = 0;
int notified1 = 0;
int notified2 = 0;
target.Subscribe<Message>(m => notified1 = ++notificationCounter);
target.Subscribe<Message>(m => notified2 = ++notificationCounter);
target.Publish(Message.Empty);
Assert.AreEqual(1, notified1);
Assert.AreEqual(2, notified2);
}
示例12: DisposeAnonymousRecipient
public void DisposeAnonymousRecipient()
{
var target = new Messenger();
var tester = new DisposeAnonymousTester(target);
tester.Register();
int c = target.Publish(Message.Empty);
Assert.AreEqual(1, c);
Assert.IsTrue(tester.Received);
tester.Received = false;
tester = null;
GC.Collect();
GC.WaitForPendingFinalizers();
c = target.Publish(Message.Empty);
Assert.AreEqual(0, c);
}
示例13: DisposeRecipientWrapped
public void DisposeRecipientWrapped()
{
var target = new Messenger();
var subscriber = new MessageSubscriber(target);
bool received = false;
subscriber.Subscribe<Message>(m => received = true);
int c = target.Publish(Message.Empty);
Assert.AreEqual(1, c);
#if !SILVERLIGHT
DisplayContext.Current.Dispatcher.DoEvents();
#endif
Assert.IsTrue(received);
received = false;
subscriber = null;
GC.Collect();
GC.WaitForPendingFinalizers();
c = target.Publish(Message.Empty);
Assert.AreEqual(0, c);
}
示例14: UnregisterToken
public void UnregisterToken()
{
var target = new Messenger();
var tester = new UnregisterTokenTester(target);
tester.Register();
int c = target.Publish(Message.Empty);
Assert.AreEqual(2, c);
Assert.IsTrue(tester.Received1);
Assert.IsTrue(tester.Received2);
tester.Received1 = false;
tester.Received2 = false;
tester.Unregister1();
c = target.Publish(Message.Empty);
Assert.AreEqual(1, c);
Assert.IsFalse(tester.Received1);
Assert.IsTrue(tester.Received2);
tester.Received1 = false;
tester.Received2 = false;
tester.Unregister2();
c = target.Publish(Message.Empty);
Assert.AreEqual(0, c);
Assert.IsFalse(tester.Received1);
Assert.IsFalse(tester.Received2);
}
示例15: UnregisterMessageSubscriber
public void UnregisterMessageSubscriber()
{
var target = new Messenger();
var tester = new UnregisterMessageSubscriberTester(target);
tester.Register();
target.Publish(Message.Empty);
#if !SILVERLIGHT
DisplayContext.Current.Dispatcher.DoEvents();
#endif
Assert.IsTrue(tester.Received);
tester.Received = false;
tester.Unregister();
target.Publish(Message.Empty);
#if !SILVERLIGHT
DisplayContext.Current.Dispatcher.DoEvents();
#endif
Assert.IsFalse(tester.Received);
}