private string Serialize <T>(MethodInfo method, params T[] arguments) where T : class { var methodRef = new MethodReference(method); var obj = new IPCMessage(methodRef, arguments); return(JsonConvert.SerializeObject(obj)); }
public async Task Main() { await Connect(); while (ServerStream.IsConnected) { try { var json = await ServerStreamReader.ReadLineAsync(); IPCMessage data = JsonConvert.DeserializeObject <IPCMessage>(json); var method = data.TargetMethod.GetMethod(); if (method.DeclaringType == typeof(MainClass)) { method.Invoke(MainClass, data.Arguments); } } catch (ArgumentNullException) { ServerStream.Disconnect(); await Connect(); } catch (Exception ex) { Console.WriteLine(ex); } } }