Table of Contents

Class JsonMessageFormatter

Namespace
StreamJsonRpc
Assembly
StreamJsonRpc.dll

Uses Newtonsoft.Json serialization to serialize JsonRpcMessage as JSON (text).

public class JsonMessageFormatter : FormatterBase, IJsonRpcFormatterState, IJsonRpcInstanceContainer, IDisposable, IJsonRpcAsyncMessageTextFormatter, IJsonRpcAsyncMessageFormatter, IJsonRpcMessageTextFormatter, IJsonRpcMessageFormatter, IJsonRpcMessageFactory
Inheritance
JsonMessageFormatter
Implements
Inherited Members

Remarks

Each instance of this class may only be used with a single JsonRpc instance.

Constructors

JsonMessageFormatter()

Initializes a new instance of the JsonMessageFormatter class that uses JsonProgress (without the preamble) for its text encoding.

public JsonMessageFormatter()

JsonMessageFormatter(Encoding)

Initializes a new instance of the JsonMessageFormatter class.

public JsonMessageFormatter(Encoding encoding)

Parameters

encoding Encoding

The encoding to use for the JSON text.

Properties

Encoding

Gets or sets the encoding to use for transmitted messages.

public Encoding Encoding { get; set; }

Property Value

Encoding

JsonSerializer

Gets the Newtonsoft.Json.JsonSerializer used when serializing and deserializing method arguments and return values.

public JsonSerializer JsonSerializer { get; }

Property Value

JsonSerializer

MultiplexingStream

Gets or sets the MultiplexingStream that may be used to establish out of band communication (e.g. marshal IDuplexPipe arguments).

public MultiplexingStream? MultiplexingStream { get; set; }

Property Value

MultiplexingStream

ProtocolVersion

Gets or sets the version of the JSON-RPC protocol emulated by this instance.

public Version ProtocolVersion { get; set; }

Property Value

Version

The default value is 2.0.

Methods

Deserialize(JToken)

Deserializes a Newtonsoft.Json.Linq.JToken to a JsonRpcMessage.

public JsonRpcMessage Deserialize(JToken json)

Parameters

json JToken

The JSON to deserialize.

Returns

JsonRpcMessage

The deserialized message.

Deserialize(ReadOnlySequence<byte>)

Deserializes a JsonRpcMessage.

public JsonRpcMessage Deserialize(ReadOnlySequence<byte> contentBuffer)

Parameters

contentBuffer ReadOnlySequence<byte>

A sequence of bytes to deserialize.

Returns

JsonRpcMessage

The deserialized JsonRpcMessage.

Deserialize(ReadOnlySequence<byte>, Encoding)

Deserializes a sequence of bytes to a JsonRpcMessage.

public JsonRpcMessage Deserialize(ReadOnlySequence<byte> contentBuffer, Encoding encoding)

Parameters

contentBuffer ReadOnlySequence<byte>

The bytes to deserialize.

encoding Encoding

The encoding to read the bytes in contentBuffer with. Must not be null.

Returns

JsonRpcMessage

The deserialized message.

DeserializeAsync(PipeReader, Encoding, CancellationToken)

Deserializes a sequence of bytes to a JsonRpcMessage.

public ValueTask<JsonRpcMessage> DeserializeAsync(PipeReader reader, Encoding encoding, CancellationToken cancellationToken)

Parameters

reader PipeReader

The reader to deserialize from.

encoding Encoding

The encoding to read the bytes from reader with. Must not be null.

cancellationToken CancellationToken

A cancellation token.

Returns

ValueTask<JsonRpcMessage>

The deserialized message.

DeserializeAsync(PipeReader, CancellationToken)

Deserializes a JsonRpcMessage.

public ValueTask<JsonRpcMessage> DeserializeAsync(PipeReader reader, CancellationToken cancellationToken)

Parameters

reader PipeReader

The reader to deserialize from.

cancellationToken CancellationToken

A cancellation token.

Returns

ValueTask<JsonRpcMessage>

The deserialized JsonRpcMessage.

Dispose(bool)

Disposes managed and native resources held by this instance.

protected override void Dispose(bool disposing)

Parameters

disposing bool

true if being disposed; false if being finalized.

GetJsonText(JsonRpcMessage)

Gets a JSON representation for a given message for tracing purposes.

public object GetJsonText(JsonRpcMessage message)

Parameters

message JsonRpcMessage

The message to be traced.

Returns

object

Any object whose ToString() method will produce a human-readable JSON string, suitable for tracing.

Serialize(JsonRpcMessage)

Serializes a JsonRpcMessage to a Newtonsoft.Json.Linq.JToken.

public JToken Serialize(JsonRpcMessage message)

Parameters

message JsonRpcMessage

The message to serialize.

Returns

JToken

The JSON of the message.

Serialize(IBufferWriter<byte>, JsonRpcMessage)

Serializes a JsonRpcMessage.

public void Serialize(IBufferWriter<byte> contentBuffer, JsonRpcMessage message)

Parameters

contentBuffer IBufferWriter<byte>
message JsonRpcMessage

The message to serialize.