本文整理汇总了C#中MessageBus.RegisterPublisher方法的典型用法代码示例。如果您正苦于以下问题:C# MessageBus.RegisterPublisher方法的具体用法?C# MessageBus.RegisterPublisher怎么用?C# MessageBus.RegisterPublisher使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MessageBus
的用法示例。
在下文中一共展示了MessageBus.RegisterPublisher方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MultiplePublishers
public void MultiplePublishers()
{
const string message1 = "Test Message #1";
const string message2 = "Test Message #2";
const string message3 = "Test Message #3";
const string message4 = "Test Message #4";
string receivedMessage = null;
var messageBus = new MessageBus();
var publisher1 = new Subject<string>();
var publisher2 = new Subject<string>();
var subscription1 = messageBus.RegisterPublisher(publisher1);
messageBus.RegisterPublisher(publisher2);
messageBus.Listen<string>().Subscribe(m => receivedMessage = m, e => Assert.Fail(), Assert.Fail);
Assert.IsNull(receivedMessage);
messageBus.Publish(message1);
Assert.AreEqual(message1, receivedMessage);
publisher1.OnNext(message2);
Assert.AreEqual(message2, receivedMessage);
publisher2.OnNext(message3);
Assert.AreEqual(message3, receivedMessage);
subscription1.Dispose();
publisher1.OnNext(message4);
Assert.AreEqual(message3, receivedMessage);
publisher2.OnNext(message4);
Assert.AreEqual(message4, receivedMessage);
}
示例2: UnregisterPublisher
public void UnregisterPublisher()
{
const string message1 = "Test Message #1";
const string message2 = "Test Message #2";
string receivedMessage = null;
var publisher = new Subject<string>();
var messageBus = new MessageBus();
var subscription = messageBus.RegisterPublisher(publisher);
messageBus.Listen<string>().Subscribe(m => receivedMessage = m, e => Assert.Fail(), Assert.Fail);
Assert.IsNull(receivedMessage);
publisher.OnNext(message1);
Assert.AreEqual(message1, receivedMessage);
subscription.Dispose();
publisher.OnNext(message2);
Assert.AreEqual(message1, receivedMessage);
}
示例3: ShouldThrowIfPublisherIsNull
public void ShouldThrowIfPublisherIsNull()
{
var messageBus = new MessageBus();
Assert.Throws<ArgumentNullException>(() => messageBus.RegisterPublisher<string>(null));
}