Как использовать объект «коммуникатор», созданный в функции main(), в функции обратного вызова? Класс PacketCommunicator не имеет конструктора.C# - создать общедоступный объект, созданный внутри функции
class Program
{
//public static PacketCommunicator communicator = new PacketCommunicator(); - can't do this; PacketCommunicator constructor doesn't exist
//public static PacketCommunicator communicator = null; - this gives "Object reference not set to an instance of an object"
public static void Main(string[] args)
{
PacketCommunicator communicator = selectedDevice.Open(...)
communicator.ReceivePackets(0, PacketHandler);
}
// Callback function invoked by ReceivePackets for every incoming packet
private static void PacketHandler(Packet packet)
{
communicator.SendPacket(packet);
}
}
Библиотека я использую Pcap.Net. В принципе, я пытаюсь захватить пакеты на одном интерфейсе, выполнить NAT на них и отправить их на другой интерфейс.
Использование лямбда-выражения и закрытия – SLaks