/// <summary> /// Process a message received by the server. /// </summary> /// <param name="message">The message to process.</param> /// <param name="channel">The server communication channel.</param> private static void HandleMessage(IStringMessage message, ITransportChannel channel) { switch (message.Header) { case InjectionCompleteNotification.InjectionComplete: var messageData = InjectionCompleteNotification.ParseMessage(message); if (messageData.Completed) { InjectionCompleted(messageData.ProcessId); } else { throw new InjectionLoadException($"Injection into process {messageData.ProcessId} failed."); } break; case LogMessageNotification.Message: var logMessageData = LogMessageNotification.ParseMessage(message); Log($"{logMessageData.Level}: {logMessageData.Message}"); break; default: { throw new InvalidOperationException($"Message type {message.Header} is not supported"); } } }
private static bool SendLogMessage(IMessageWriter writer, LogLevel level, string message) { return(writer.TryWrite(LogMessageNotification.CreateMessage(level, message))); }