当前上下文中不存在名称“”
the name '' does not exist in the current context
嗨,由于错误,我无法解决 OnLoginSuccess() pubSocket.SendMoreFrame("TopicA").SendFrame("Hello");
变量中的问题
当前上下文中不存在名称“”。
我知道我需要将变量更改为 public 但是当我添加
static public PublisherSocket pubSocket = new PublisherSocket();
在 class 的开头,代码无法正常工作。
另外,问题是我需要在 Main() 中设置一些选项(.Options、.Bind)。
using System;
using System.Threading;
using NetMQ;
using NetMQ.Sockets;
namespace Publisher
{
class Program
{
static public void OnLoginSuccess()
{
pubSocket.SendMoreFrame("TopicA").SendFrame("Hello");
}
static void Main(string[] args)
{
using (var pubSocket = new PublisherSocket())
{
pubSocket.Options.SendHighWatermark = 1000;
pubSocket.Bind("tcp://localhost:12345");
}
OnLoginSuccess();
}
}
}
如前所述,要么在 class
中创建一个私有静态变量
private static PublisherSocket pubSocket;
或将套接字引用传递到您的 OnLoginSuccess 方法中。
static public void OnLoginSuccess(PublisherSocket socket)
{
socket.SendMoreFrame("TopicA").SendFrame("Hello");
}
正如 Evan 所指出的,由于 using 符号,您的 ref 将被处理掉。用完后将其移除并丢弃。
var pubSocket = new PublisherSocket()
{
pubSocket.Options.SendHighWatermark = 1000;
pubSocket.Bind("tcp://localhost:12345");
};
OnLoginSuccess(pubSocket);
pubSocket.Dispose();
您可能希望将调用放在 try catch finally 中,然后将 dispose 放在 finally 中以确保正确清理。
希望对您有所帮助。
嗨,由于错误,我无法解决 OnLoginSuccess() pubSocket.SendMoreFrame("TopicA").SendFrame("Hello");
变量中的问题
当前上下文中不存在名称“”。
我知道我需要将变量更改为 public 但是当我添加
static public PublisherSocket pubSocket = new PublisherSocket();
在 class 的开头,代码无法正常工作。
另外,问题是我需要在 Main() 中设置一些选项(.Options、.Bind)。
using System;
using System.Threading;
using NetMQ;
using NetMQ.Sockets;
namespace Publisher
{
class Program
{
static public void OnLoginSuccess()
{
pubSocket.SendMoreFrame("TopicA").SendFrame("Hello");
}
static void Main(string[] args)
{
using (var pubSocket = new PublisherSocket())
{
pubSocket.Options.SendHighWatermark = 1000;
pubSocket.Bind("tcp://localhost:12345");
}
OnLoginSuccess();
}
}
}
如前所述,要么在 class
中创建一个私有静态变量private static PublisherSocket pubSocket;
或将套接字引用传递到您的 OnLoginSuccess 方法中。
static public void OnLoginSuccess(PublisherSocket socket)
{
socket.SendMoreFrame("TopicA").SendFrame("Hello");
}
正如 Evan 所指出的,由于 using 符号,您的 ref 将被处理掉。用完后将其移除并丢弃。
var pubSocket = new PublisherSocket()
{
pubSocket.Options.SendHighWatermark = 1000;
pubSocket.Bind("tcp://localhost:12345");
};
OnLoginSuccess(pubSocket);
pubSocket.Dispose();
您可能希望将调用放在 try catch finally 中,然后将 dispose 放在 finally 中以确保正确清理。
希望对您有所帮助。