没有找到一个关于如何在VB中使用RabbitMQ的东西
可以在某种程度上进行更改,使其看起来像C#
Dim factory = New ConnectionFactory() : With factory
.HostName = "localhost"
End With
Using connection = factory.CreateConnection()
Using channel = connection.CreateModel()
...
...
End Using
End Using
我已经检查了发送消息或声明队列没有问题,但是使用消费者怎么办?
在C#中,消费者看起来像:
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
...
...
channel.BasicAck(ea.DeliveryTag, false, false);
};
但是在VB中应该是什么样子呢?已经尝试过这种东西了:
Dim consumer As EventingBasicConsumer = New EventingBasicConsumer(channel)
AddHandler consumer.Received, AddressOf ConsumerReceived
Private Sub ConsumerReceived(ByVal sender As Object, ByVal e As EventArgs)
Dim Test = ""
End Sub
创建消费者时没有问题,但对事件没有React
有没有一些工作,手册如何使用rabbitMQ与VB或也许我只是错过了一些东西?
1条答案
按热度按时间h9a6wy2h1#
实际上,问题似乎是如何在VB .NET中将匿名函数指定为事件处理程序,而不是为什么不调用事件处理程序。
但我想你要找的可能是这个:
或者,您也可以像现在这样,将事件处理程序放在一个单独的方法中(我倾向于这样做,只是因为这样更容易阅读和理解)。
在VB.NET方法中,您将事件发送方和参数转换为
object
和EventArgs
。参数可以转换为这些类型,因为所有内容都是对象,并且BasicDeliverEventArgs
继承自EventArgs
。但在本例中,您需要更具体地进行转换,以便可以访问所需的属性。最简单的事情(如果可以选择的话)就是切换到C#。这使得代码示例更容易使用。我坚持了一段时间的VB.NET。不知道为什么--它没有花很长时间就适应了C#,我很快就喜欢上了它。