0

我正在尝试在 vb.net NsqSharp中使用这个包 在 C# 中有一个很好的代码,但我在 vb.net 中需要它。

我得到它来向我的 NSQ 服务器发送消息,但问题是得到它。但我得到一个错误consumer.AddHandler(New HandleMessage()),我不知道我是否声明了HandleMessage权利。

Imports NsqSharp
Imports System.IO
Imports System.Text
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim producer = New Producer("127.0.0.1:4150")

        producer.Publish("test-topic-name", Me.txt_tx.Text)
        producer.Stop()
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim consumer = New Consumer("test-topic-name", "channel-name")
        consumer.AddHandler(New HandleMessage())

        consumer.ConnectToNsqLookupd("127.0.0.1:4161")
        consumer.Stop()
    End Sub
    Public Interface IHandler : End Interface
    Public Sub HandleMessage(message As Message)
        Dim msg As String = Encoding.UTF8.GetString(message.Body)
        MsgBox(msg)
    End Sub
    Public Sub LogFailedMessage(message As Message)
        Dim msg As String = Encoding.UTF8.GetString(message.Body)
        MsgBox(msg)
    End Sub
End Class
4

1 回答 1

3

但是我在 Implements IHandler 上遇到错误

可爱的问题描述,当您不描述您看到的确切错误消息时,您将无法获得有用的答案。您确实写错了代码,VB.NETImplements在接口方法实现上需要关键字。通过让 IDE 为您生成这些方法,您通常会陷入成功的陷阱。只要您键入“Implements IHandler”并按 Enter 键,IDE 就会自动添加方法。

所以图书馆参考也可能有问题。一步一步:

  1. 工具 > Nuget 包管理器 > 包管理器控制台。
  2. 键入“安装包 NsqSharp”。在下载和安装软件包时观察它。
  3. 放在Imports NsqSharp源文件的顶部。

你现在应该得到:

Public Class MessageHandler
    Implements IHandler

    Private Sub IHandler_HandleMessage(message As Message) Implements IHandler.HandleMessage
        Dim msg As String = Encoding.UTF8.GetString(message.Body)
        MessageBox.Show(msg)
    End Sub

    Private Sub IHandler_LogFailedMessage(message As Message) Implements IHandler.LogFailedMessage
        Dim msg As String = Encoding.UTF8.GetString(message.Body)
        MessageBox.Show(msg)
    End Sub
End Class
于 2015-08-08T10:49:52.777 回答