internal void FireRemoteProcedureCallEvent(RemoteProcedureCallEventArgs args) { if (RemoteProcedureCall != null) { RemoteProcedureCall(this, args); } }
void OnRemotingMessageReceived(object sender, RemotingMessageReceivedEventArgs args) { RemoteProcedureCallEventArgs rpc = new RemoteProcedureCallEventArgs(args.Destination, args.Operation, (dynamic)args.Message.Body); _extensionManager.FireRemoteProcedureCallEvent(rpc); args.Message.Body = rpc.Parameters; }
void OnRemotingMessageReceived(object sender, RemotingMessageReceivedEventArgs args) { try { RemoteProcedureCallEventArgs rpc = new RemoteProcedureCallEventArgs(args.Destination, args.Operation, (dynamic)args.Message.Body); _extensionManager.FireRemoteProcedureCallEvent(rpc); args.Message.Body = rpc.Parameters; } catch (Exception ex) { _extensionManager.ConsoleWriteLine($"[{(ex.TargetSite.DeclaringType as IExtension)?.Name ?? ex.TargetSite.DeclaringType.FullName}] threw {ex.GetType().FullName} during RPC"); _extensionManager.ConsoleWriteLine(" --- Stacktrace --- "); _extensionManager.ConsoleWriteLine(ex.StackTrace); _extensionManager.ConsoleWriteLine(" --- Stacktrace end --- "); } }