本文整理汇总了C#中Messenger.Subscribe方法的典型用法代码示例。如果您正苦于以下问题:C# Messenger.Subscribe方法的具体用法?C# Messenger.Subscribe怎么用?C# Messenger.Subscribe使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Messenger
的用法示例。
在下文中一共展示了Messenger.Subscribe方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Messager_Unsubscription_Test
public void Messager_Unsubscription_Test(int countSend)
{
var subscriber1 = new FakeSubscriber();
var subscriber2 = new FakeSubscriber();
var message = new FakeOneMessage { Text = "Test message" };
var messenger = new Messenger();
byte firstSubscriberNumber = 0;
byte secondSubscriberNumber = 0;
messenger.Subscribe<FakeOneMessage>(subscriber1, (s, m) =>
{
firstSubscriberNumber++;
messenger.Unsubscribe<FakeOneMessage>(subscriber1);
});
messenger.Subscribe<FakeOneMessage>(subscriber2, (s, m) =>
{
secondSubscriberNumber++;
});
for (int i = 0; i < countSend; i++)
{
messenger.Send(message);
}
Assert.AreEqual(1, firstSubscriberNumber);
Assert.AreEqual(countSend, secondSubscriberNumber);
}
示例2: 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);
}
示例3: 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);
}
示例4: 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);
}
示例5: 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);
}
示例6: 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));
}
}
示例7: 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);
}
示例8: Messager_IncorrectSubscription_Test
public void Messager_IncorrectSubscription_Test()
{
var subscriber = new FakeSubscriber();
var message = new FakeTwoMessage();
var messenger = new Messenger();
FakeOneMessage receivedMessage = null;
messenger.Subscribe<FakeOneMessage>(subscriber, (s, m) =>
{
receivedMessage = m;
});
messenger.Send(message);
Assert.AreNotSame(message, receivedMessage);
}
示例9: Messager_CorrectSubscription_Test
public void Messager_CorrectSubscription_Test()
{
var subscriber = new FakeSubscriber();
var message = new FakeOneMessage { Text = "Test message" };
var messenger = new Messenger();
FakeOneMessage receivedMessage = null;
messenger.Subscribe<FakeOneMessage>(subscriber, (s, m) =>
{
receivedMessage = m;
});
messenger.Send(message);
Assert.AreSame(message, receivedMessage);
Assert.AreEqual(message.Text, receivedMessage.Text);
}
示例10: 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);
}
示例11: StaticCallbackMethodIsInvoked
public void StaticCallbackMethodIsInvoked()
{
Messenger target = new Messenger();
_wasStaticCallbackMethodInvoked = false;
target.Subscribe<Message>(StaticCallbackMethod);
target.Publish(Message.Empty);
Assert.IsTrue(_wasStaticCallbackMethodInvoked);
}
示例12: 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);
}
示例13: Subscriber
public Subscriber()
{
var m = new Messenger();
m.Subscribe<int>(e => Value = e);
}