Beispiel #1
0
 private void WriteCompletionMessage(CompletionMessage message, Utf8JsonWriter writer)
 {
     WriteInvocationId(message, writer);
     if (!string.IsNullOrEmpty(message.Error))
     {
         writer.WriteString(ErrorPropertyNameBytes, message.Error);
     }
     else if (message.HasResult)
     {
         writer.WritePropertyName(ResultPropertyNameBytes);
         JsonSerializer.Serialize(writer, message.Result, message.Result?.GetType(), _payloadSerializerOptions);
     }
 }
Beispiel #2
0
 private void WriteCompletionMessage(CompletionMessage message, Utf8JsonWriter writer)
 {
     WriteInvocationId(message, writer);
     if (!string.IsNullOrEmpty(message.Error))
     {
         writer.WriteString(ErrorPropertyNameBytes, message.Error);
     }
     else if (message.HasResult)
     {
         using var token = GetParsedObject(message.Result, message.Result?.GetType());
         token.RootElement.WriteAsProperty(ResultPropertyNameBytes.EncodedUtf8Bytes, writer);
     }
 }
Beispiel #3
0
 private void WriteCompletionMessage(CompletionMessage message, JsonTextWriter writer)
 {
     WriteInvocationId(message, writer);
     if (!string.IsNullOrEmpty(message.Error))
     {
         writer.WritePropertyName(ErrorPropertyName);
         writer.WriteValue(message.Error);
     }
     else if (message.HasResult)
     {
         writer.WritePropertyName(ResultPropertyName);
         PayloadSerializer.Serialize(writer, message.Result);
     }
 }
        private void WriteCompletionMessage(CompletionMessage message, ref MessagePackWriter writer)
        {
            var resultKind =
                message.Error != null ? ErrorResult :
                message.HasResult ? NonVoidResult :
                VoidResult;

            writer.WriteArrayHeader(4 + (resultKind != VoidResult ? 1 : 0));
            writer.Write(HubProtocolConstants.CompletionMessageType);
            PackHeaders(message.Headers, ref writer);
            writer.Write(message.InvocationId);
            writer.Write(resultKind);
            switch (resultKind)
            {
            case ErrorResult:
                writer.Write(message.Error);
                break;

            case NonVoidResult:
                WriteArgument(message.Result, ref writer);
                break;
            }
        }