public Task ReceiveMessageAsync(MessageWrapper message) { var payload = Deserialize<PublishedMessageOne>(message); ActorEventSource.Current.ActorMessage(this, $"Received message: {payload.Content}"); //TODO: handle message return Task.FromResult(true); }
/// <summary> /// Convert the provided <paramref name="message"/> into a <see cref="MessageWrapper"/> /// </summary> /// <param name="actor"></param> /// <param name="message"></param> /// <returns></returns> public static MessageWrapper CreateMessageWrapper(this ActorBase actor, object message) { var wrapper = new MessageWrapper { MessageType = message.GetType().FullName, Payload = JsonConvert.SerializeObject(message), }; return wrapper; }
/// <summary> /// Convert the provided <paramref name="messageWrapper"/> into an object of type <typeparamref name="TResult"/> /// </summary> /// <param name="messageWrapper"></param> /// <returns></returns> public static TResult CreateMessage <TResult>(this MessageWrapper messageWrapper) { var message = (PayloadSerializer ?? new DefaultPayloadSerializer()).Deserialize <TResult>(messageWrapper.Payload); return(message); }