Консольное приложение для C# WPF
Всем привет. Я хотел бы узнать, не могли бы вы мне помочь со следующим.
Мне нужно преобразовать проект, который находится на GibHub, а именно: [^]
Мне нужно иметь возможность получить доступ и/или переопределить методы, которые находятся в классе.
Например, для
using System; using System.Net; using System.Net.Sockets; using System.Text; using NetCoreServer; namespace TcpChatServer { class ChatSession : TcpSession { public ChatSession(TcpServer server) : base(server) {} protected override void OnConnected() { Console.WriteLine($"Chat TCP session with Id {Id} connected!"); // Send invite message string message = "Hello from TCP chat! Please send a message or '!' to disconnect the client!"; SendAsync(message); } protected override void OnDisconnected() { Console.WriteLine($"Chat TCP session with Id {Id} disconnected!"); } protected override void OnReceived(byte[] buffer, long offset, long size) { string message = Encoding.UTF8.GetString(buffer, (int)offset, (int)size); Console.WriteLine("Incoming: " + message); // Multicast message to all connected sessions Server.Multicast(message); // If the buffer starts with '!' the disconnect the current session if (message == "!") Disconnect(); } protected override void OnError(SocketError error) { Console.WriteLine($"Chat TCP session caught an error with code {error}"); } } class ChatServer : TcpServer { public ChatServer(IPAddress address, int port) : base(address, port) {} protected override TcpSession CreateSession() { return new ChatSession(this); } protected override void OnError(SocketError error) { Console.WriteLine($"Chat TCP server caught an error with code {error}"); } } class Program { static void Main(string[] args) { // TCP server port int port = 1111; if (args.Length > 0) port = int.Parse(args[0]); Console.WriteLine($"TCP server port: {port}"); Console.WriteLine(); // Create a new TCP chat server var server = new ChatServer(IPAddress.Any, port); // Start the server Console.Write("Server starting..."); server.Start(); Console.WriteLine("Done!"); Console.WriteLine("Press Enter to stop the server or '!' to restart the server..."); // Perform text input for (;;) { string line = Console.ReadLine(); if (string.IsNullOrEmpty(line)) break; // Restart the server if (line == "!") { Console.Write("Server restarting..."); server.Restart(); Console.WriteLine("Done!"); continue; } // Multicast admin message to all sessions line = "(admin) " + line; server.Multicast(line); } // Stop the server Console.Write("Server stopping..."); server.Stop(); Console.WriteLine("Done!"); } } }
Что я уже пробовал:
Во - первых, мне не понадобятся консольные выходы. Я уже переместил приведенный выше код в отдельный класс. Теперь я хочу использовать метод OnError из своего кода.
Как я могу это сделать?