Use writer/serializer json interop in SignalR (#11625)
This commit is contained in:
parent
f2ef27d46c
commit
7610ba3ef3
|
|
@ -500,8 +500,8 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
|
||||||
}
|
}
|
||||||
else if (message.HasResult)
|
else if (message.HasResult)
|
||||||
{
|
{
|
||||||
using var token = GetParsedObject(message.Result, message.Result?.GetType());
|
writer.WritePropertyName(ResultPropertyNameBytes);
|
||||||
token.RootElement.WriteProperty(ResultPropertyNameBytes.EncodedUtf8Bytes, writer);
|
JsonSerializer.WriteValue(writer, message.Result, message.Result?.GetType(), _payloadSerializerOptions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -514,8 +514,8 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
|
||||||
{
|
{
|
||||||
WriteInvocationId(message, writer);
|
WriteInvocationId(message, writer);
|
||||||
|
|
||||||
using var token = GetParsedObject(message.Item, message.Item?.GetType());
|
writer.WritePropertyName(ItemPropertyNameBytes);
|
||||||
token.RootElement.WriteProperty(ItemPropertyNameBytes.EncodedUtf8Bytes, writer);
|
JsonSerializer.WriteValue(writer, message.Item, message.Item?.GetType(), _payloadSerializerOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WriteInvocationMessage(InvocationMessage message, Utf8JsonWriter writer)
|
private void WriteInvocationMessage(InvocationMessage message, Utf8JsonWriter writer)
|
||||||
|
|
@ -562,20 +562,12 @@ namespace Microsoft.AspNetCore.SignalR.Protocol
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
using var token = GetParsedObject(argument, type);
|
JsonSerializer.WriteValue(writer, argument, type, _payloadSerializerOptions);
|
||||||
token.RootElement.WriteValue(writer);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
writer.WriteEndArray();
|
writer.WriteEndArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
private JsonDocument GetParsedObject(object obj, Type type)
|
|
||||||
{
|
|
||||||
var bytes = JsonSerializer.ToUtf8Bytes(obj, type, _payloadSerializerOptions);
|
|
||||||
var token = JsonDocument.Parse(bytes);
|
|
||||||
return token;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void WriteStreamIds(string[] streamIds, Utf8JsonWriter writer)
|
private void WriteStreamIds(string[] streamIds, Utf8JsonWriter writer)
|
||||||
{
|
{
|
||||||
if (streamIds == null)
|
if (streamIds == null)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue