GameVsJam/3d Prototyp/Assets/Packages/StreamJsonRpc.2.17.11/lib/netstandard2.1/StreamJsonRpc.xml

6368 lines
446 KiB
XML

<?xml version="1.0"?>
<doc>
<assembly>
<name>StreamJsonRpc</name>
</assembly>
<members>
<member name="T:System.Runtime.CompilerServices.IsExternalInit">
<summary>
Reserved to be used by the compiler for tracking metadata.
This class should not be used by developers in source code.
</summary>
<remarks>
This definition is provided by the <i>IsExternalInit</i> NuGet package (https://www.nuget.org/packages/IsExternalInit).
Please see https://github.com/manuelroemer/IsExternalInit for more information.
</remarks>
</member>
<member name="T:StreamJsonRpc.ActivityTracingStrategy">
<summary>
Synchronizes activities as set by the <see cref="T:System.Diagnostics.Activity" /> class over RPC.
</summary>
<seealso cref="T:StreamJsonRpc.CorrelationManagerTracingStrategy" />
</member>
<member name="M:StreamJsonRpc.ActivityTracingStrategy.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.ActivityTracingStrategy" /> class.
</summary>
</member>
<member name="M:StreamJsonRpc.ActivityTracingStrategy.#ctor(System.Diagnostics.ActivitySource)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.ActivityTracingStrategy" /> class.
</summary>
<param name="activitySource">The <see cref="T:System.Diagnostics.ActivitySource" /> to use for creating activities.</param>
</member>
<member name="M:StreamJsonRpc.ActivityTracingStrategy.ApplyOutboundActivity(StreamJsonRpc.Protocol.JsonRpcRequest)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.ActivityTracingStrategy.ApplyInboundActivity(StreamJsonRpc.Protocol.JsonRpcRequest)">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.AwaitExtensions">
<summary>
A collection of extension methods to support special awaiters.
</summary>
</member>
<member name="M:StreamJsonRpc.AwaitExtensions.GetAwaiter(System.Threading.SynchronizationContext)">
<summary>
Gets an awaiter that switches the caller to execute on the specified <see cref="T:System.Threading.SynchronizationContext" />.
</summary>
<param name="synchronizationContext">The <see cref="T:System.Threading.SynchronizationContext" /> to switch to.</param>
<returns>The value to await on.</returns>
</member>
<member name="T:StreamJsonRpc.AwaitExtensions.SynchronizationContextAwaiter">
<summary>
The awaiter for <see cref="T:System.Threading.SynchronizationContext" />.
</summary>
</member>
<member name="F:StreamJsonRpc.AwaitExtensions.SynchronizationContextAwaiter.synchronizationContext">
<summary>
The <see cref="T:System.Threading.SynchronizationContext" /> to switch the caller's context to.
</summary>
</member>
<member name="M:StreamJsonRpc.AwaitExtensions.SynchronizationContextAwaiter.#ctor(System.Threading.SynchronizationContext)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.AwaitExtensions.SynchronizationContextAwaiter" /> struct.
</summary>
<param name="synchronizationContext">The <see cref="T:System.Threading.SynchronizationContext" /> to switch the caller's context to.</param>
</member>
<member name="P:StreamJsonRpc.AwaitExtensions.SynchronizationContextAwaiter.IsCompleted">
<summary>
Gets a value indicating whether the caller is already on the desired context.
</summary>
<remarks>
We always return <see langword="false" /> because we use this to invoke server methods and we *always* want to
yield before invoking them, even if this is the default SynchronizationContext that the caller is on.
</remarks>
</member>
<member name="M:StreamJsonRpc.AwaitExtensions.SynchronizationContextAwaiter.GetResult">
<summary>
Does nothing.
</summary>
</member>
<member name="M:StreamJsonRpc.AwaitExtensions.SynchronizationContextAwaiter.OnCompleted(System.Action)">
<summary>
Schedules a continuation on the <see cref="T:System.Threading.SynchronizationContext" /> specified in the constructor.
</summary>
<param name="continuation">The delegate to execute on the <see cref="T:System.Threading.SynchronizationContext" />.</param>
</member>
<member name="T:StreamJsonRpc.CommonMethodNameTransforms">
<summary>
Common RPC method transform functions that may be supplied to <see cref="M:StreamJsonRpc.JsonRpc.AddLocalRpcTarget(System.Object,StreamJsonRpc.JsonRpcTargetOptions)" />
by way of <see cref="P:StreamJsonRpc.JsonRpcTargetOptions.MethodNameTransform" />.
</summary>
</member>
<member name="P:StreamJsonRpc.CommonMethodNameTransforms.CamelCase">
<summary>
Gets a function that converts a given string from PascalCase to camelCase.
</summary>
</member>
<member name="M:StreamJsonRpc.CommonMethodNameTransforms.Prepend(System.String)">
<summary>
Gets a function that prepends a particular string in front of any RPC method name.
</summary>
<param name="prefix">
The prefix to prepend to any method name.
This value must not be null.
When this value is the empty string, no transformation is performed by the returned function.
</param>
<returns>The transform function.</returns>
</member>
<member name="T:StreamJsonRpc.CorrelationManagerTracingStrategy">
<summary>
Synchronizes activities as set by the <see cref="T:System.Diagnostics.CorrelationManager" /> class over RPC.
</summary>
<seealso cref="T:StreamJsonRpc.ActivityTracingStrategy" />
</member>
<member name="P:StreamJsonRpc.CorrelationManagerTracingStrategy.TraceState">
<summary>
Gets or sets the contextual <c>tracestate</c> value.
</summary>
</member>
<member name="P:StreamJsonRpc.CorrelationManagerTracingStrategy.TraceSource">
<summary>
Gets or sets the <see cref="T:System.Diagnostics.TraceSource" /> that will receive the activity transfer, start and stop events .
</summary>
</member>
<member name="M:StreamJsonRpc.CorrelationManagerTracingStrategy.ApplyOutboundActivity(StreamJsonRpc.Protocol.JsonRpcRequest)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.CorrelationManagerTracingStrategy.ApplyInboundActivity(StreamJsonRpc.Protocol.JsonRpcRequest)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.CorrelationManagerTracingStrategy.GetInboundActivityName(StreamJsonRpc.Protocol.JsonRpcRequest)">
<summary>
Determines the name to give to the activity started when dispatching an incoming RPC call.
</summary>
<param name="request">The inbound RPC request.</param>
<returns>The name of the activity.</returns>
<remarks>
The default implementation uses <see cref="P:StreamJsonRpc.Protocol.JsonRpcRequest.Method" /> as the activity name.
</remarks>
</member>
<member name="T:StreamJsonRpc.DisconnectedReason">
<summary>
Identifies a reason for a stream disconnection.
</summary>
</member>
<member name="F:StreamJsonRpc.DisconnectedReason.StreamError">
<summary>
An error occurred while accessing the stream.
</summary>
</member>
<member name="F:StreamJsonRpc.DisconnectedReason.ParseError">
<summary>
A syntax or schema error while reading a JSON-RPC packet occurred.
</summary>
</member>
<member name="F:StreamJsonRpc.DisconnectedReason.LocallyDisposed">
<summary>
The <see cref="T:StreamJsonRpc.JsonRpc" /> instance was disposed.
</summary>
</member>
<member name="F:StreamJsonRpc.DisconnectedReason.RemotePartyTerminated">
<summary>
The underlying transport was closed by the remote party.
</summary>
</member>
<member name="F:StreamJsonRpc.DisconnectedReason.FatalException">
<summary>
A fatal exception was thrown in a local method that was requested by the remote party.
</summary>
</member>
<member name="F:StreamJsonRpc.DisconnectedReason.LocalContractViolation">
<summary>
An extensibility point was leveraged locally and broke the contract.
</summary>
</member>
<member name="F:StreamJsonRpc.DisconnectedReason.RemoteProtocolViolation">
<summary>
The remote party violated the JSON-RPC protocol.
</summary>
</member>
<member name="T:StreamJsonRpc.JsonRpcDisconnectedEventArgs">
<summary>
Describes the reason behind a disconnection with the remote party.
</summary>
<seealso cref="T:System.EventArgs" />
</member>
<member name="M:StreamJsonRpc.JsonRpcDisconnectedEventArgs.#ctor(System.String,StreamJsonRpc.DisconnectedReason)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcDisconnectedEventArgs" /> class.
</summary>
<param name="description">The description.</param>
<param name="reason">The reason for disconnection.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcDisconnectedEventArgs.#ctor(System.String,StreamJsonRpc.DisconnectedReason,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcDisconnectedEventArgs" /> class.
</summary>
<param name="description">The description.</param>
<param name="reason">The reason for disconnection.</param>
<param name="exception">The exception.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcDisconnectedEventArgs.#ctor(System.String,StreamJsonRpc.DisconnectedReason,Newtonsoft.Json.Linq.JToken)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcDisconnectedEventArgs" /> class.
</summary>
<param name="description">The description.</param>
<param name="reason">The reason for disconnection.</param>
<param name="lastMessage">The last message.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcDisconnectedEventArgs.#ctor(System.String,StreamJsonRpc.DisconnectedReason,Newtonsoft.Json.Linq.JToken,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcDisconnectedEventArgs" /> class.
</summary>
<param name="description">The description.</param>
<param name="reason">The reason for disconnection.</param>
<param name="lastMessage">The last message.</param>
<param name="exception">The exception.</param>
</member>
<member name="P:StreamJsonRpc.JsonRpcDisconnectedEventArgs.Description">
<summary>
Gets the description.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpcDisconnectedEventArgs.Reason">
<summary>
Gets the reason.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpcDisconnectedEventArgs.LastMessage">
<summary>
Gets the last message.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpcDisconnectedEventArgs.Exception">
<summary>
Gets the exception.
</summary>
</member>
<member name="T:StreamJsonRpc.ExceptionProcessing">
<summary>
Enumerates the exception handling behaviors that are built into the <see cref="T:StreamJsonRpc.JsonRpc" /> class.
</summary>
<seealso cref="P:StreamJsonRpc.JsonRpc.ExceptionStrategy" />
</member>
<member name="F:StreamJsonRpc.ExceptionProcessing.CommonErrorData">
<summary>
Exceptions thrown by the server are serialized as the simple <see cref="T:StreamJsonRpc.Protocol.CommonErrorData" /> class
and the default error code is <see cref="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.InvocationError" />.
The client experiences a <see cref="T:StreamJsonRpc.RemoteInvocationException" /> whose <see cref="P:StreamJsonRpc.RemoteInvocationException.DeserializedErrorData" /> property
is the deserialized <see cref="T:StreamJsonRpc.Protocol.CommonErrorData" />.
</summary>
</member>
<member name="F:StreamJsonRpc.ExceptionProcessing.ISerializable">
<summary>
Exceptions thrown by the server are serialized via the <see cref="T:System.Runtime.Serialization.ISerializable" /> mechanism and captures more detail,
using the error code <see cref="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.InvocationErrorWithException" />.
These are deserialized with the original exception types as inner exceptions of the <see cref="T:StreamJsonRpc.RemoteInvocationException" /> thrown at the client.
The <see cref="P:StreamJsonRpc.RemoteInvocationException.DeserializedErrorData" /> is also set to an instance of <see cref="T:StreamJsonRpc.Protocol.CommonErrorData" /> that resembles the inner exception tree.
</summary>
</member>
<member name="T:StreamJsonRpc.ExceptionSettings">
<summary>
Contains security-related settings that influence how errors are serialized and deserialized.
</summary>
</member>
<member name="F:StreamJsonRpc.ExceptionSettings.TrustedData">
<summary>
The recommended settings for use when communicating with a trusted party.
</summary>
</member>
<member name="F:StreamJsonRpc.ExceptionSettings.UntrustedData">
<summary>
The recommended settings for use when communicating with an untrusted party.
</summary>
</member>
<member name="M:StreamJsonRpc.ExceptionSettings.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.ExceptionSettings" /> class.
</summary>
<param name="recursionLimit">The maximum number of nested errors to serialize or deserialize.</param>
</member>
<member name="P:StreamJsonRpc.ExceptionSettings.RecursionLimit">
<summary>
Gets the maximum number of nested errors to serialize or deserialize.
</summary>
<value>The default value is 50.</value>
<remarks>
This can help mitigate DoS attacks from unbounded recursion that otherwise error deserialization
becomes perhaps uniquely vulnerable to since the data structure allows recursion.
</remarks>
</member>
<member name="M:StreamJsonRpc.ExceptionSettings.CanDeserialize(System.Type)">
<summary>
Tests whether a type can be deserialized as part of deserializing an exception.
</summary>
<param name="type">The type that may be deserialized.</param>
<returns><see langword="true" /> if the type is safe to deserialize; <see langword="false" /> otherwise.</returns>
<remarks>
<para>
The default implementation returns <see langword="true" /> for all types in <see cref="F:StreamJsonRpc.ExceptionSettings.TrustedData" />-based instances;
or for <see cref="F:StreamJsonRpc.ExceptionSettings.UntrustedData" />-based instances will return <see langword="true" /> for
<see cref="T:System.Exception" />-derived types that are expected to be safe to deserialize.
</para>
<para>
<see cref="T:System.Exception" />-derived types that may deserialize data that would be unsafe coming from an untrusted party <em>should</em>
consider the <see cref="T:System.Runtime.Serialization.StreamingContext" /> passed to their deserializing constructor and skip deserializing of potentitally
dangerous data when <see cref="P:System.Runtime.Serialization.StreamingContext.State" /> includes the <see cref="F:System.Runtime.Serialization.StreamingContextStates.Remoting" /> flag.
</para>
</remarks>
</member>
<member name="T:StreamJsonRpc.BadRpcHeaderException">
<summary>
An exception thrown when a deserialized message has a bad header.
</summary>
<seealso cref="T:StreamJsonRpc.RemoteRpcException" />
</member>
<member name="M:StreamJsonRpc.BadRpcHeaderException.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.BadRpcHeaderException" /> class.
</summary>
<param name="message">The message.</param>
</member>
<member name="M:StreamJsonRpc.BadRpcHeaderException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.BadRpcHeaderException" /> class.
</summary>
<param name="message">The message.</param>
<param name="innerException">The inner exception.</param>
</member>
<member name="M:StreamJsonRpc.BadRpcHeaderException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.BadRpcHeaderException" /> class.
</summary>
<param name="info">Serialization info.</param>
<param name="context">Streaming context.</param>
</member>
<member name="T:StreamJsonRpc.ConnectionLostException">
<summary>
An exception used to fault a <see cref="T:System.Threading.Tasks.Task" /> returned from a <see cref="T:StreamJsonRpc.JsonRpc" /> request
when the request could not be completed or the response cannot be received because the connection dropped.
</summary>
</member>
<member name="M:StreamJsonRpc.ConnectionLostException.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.ConnectionLostException" /> class.
</summary>
</member>
<member name="M:StreamJsonRpc.ConnectionLostException.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.ConnectionLostException" /> class.
</summary>
<param name="message">The message that describes the error.</param>
</member>
<member name="M:StreamJsonRpc.ConnectionLostException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.ConnectionLostException" /> class.
</summary>
<param name="message">The error message that explains the reason for the exception.</param>
<param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
</member>
<member name="M:StreamJsonRpc.ConnectionLostException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.ConnectionLostException" /> class.
</summary>
<param name="info">Serialization info.</param>
<param name="context">Streaming context.</param>
</member>
<member name="T:StreamJsonRpc.LocalRpcException">
<summary>
An exception that may be thrown within a locally invoked server method, and carries with it data that influences the JSON-RPC error message's error object.
</summary>
</member>
<member name="M:StreamJsonRpc.LocalRpcException.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.LocalRpcException" /> class.
</summary>
</member>
<member name="M:StreamJsonRpc.LocalRpcException.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.LocalRpcException" /> class.
</summary>
<param name="message">The error message that explains the reason for the exception.</param>
</member>
<member name="M:StreamJsonRpc.LocalRpcException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.LocalRpcException" /> class.
</summary>
<param name="message">The error message that explains the reason for the exception.</param>
<param name="inner">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
</member>
<member name="P:StreamJsonRpc.LocalRpcException.ErrorData">
<summary>
Gets or sets the value for the error.data property.
</summary>
</member>
<member name="P:StreamJsonRpc.LocalRpcException.ErrorCode">
<summary>
Gets or sets the value for the error.code property.
</summary>
<remarks>
The default value is set to a special general error code: <see cref="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.InvocationError" />.
This may be set to a more meaningful error code for the application that allows the client to programatically respond to the error condition.
Application-defined values should avoid the [-32768, -32000] range, which is reserved for the JSON-RPC protocol itself.
</remarks>
</member>
<member name="T:StreamJsonRpc.RemoteInvocationException">
<summary>
Remote RPC exception that indicates that the server target method threw an exception.
</summary>
<remarks>
The details of the target method exception can be found on the <see cref="P:StreamJsonRpc.RemoteInvocationException.ErrorCode" /> and <see cref="P:StreamJsonRpc.RemoteInvocationException.ErrorData" /> properties.
</remarks>
</member>
<member name="M:StreamJsonRpc.RemoteInvocationException.#ctor(System.String,System.Int32,System.Object)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteInvocationException" /> class.
</summary>
<param name="message">The message.</param>
<param name="errorCode">The value of the error.code field in the response.</param>
<param name="errorData">The value of the error.data field in the response.</param>
</member>
<member name="M:StreamJsonRpc.RemoteInvocationException.#ctor(System.String,System.Int32,System.Object,System.Object)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteInvocationException" /> class.
</summary>
<param name="message">The message.</param>
<param name="errorCode">The value of the error.code field in the response.</param>
<param name="errorData">The value of the error.data field in the response.</param>
<param name="deserializedErrorData">The value of the error.data field in the response, deserialized according to <see cref="M:StreamJsonRpc.JsonRpc.GetErrorDetailsDataType(StreamJsonRpc.Protocol.JsonRpcError)" />.</param>
</member>
<member name="M:StreamJsonRpc.RemoteInvocationException.#ctor(System.String,System.Int32,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteInvocationException" /> class.
</summary>
<param name="message">The message.</param>
<param name="errorCode">The value of the error.code field in the response.</param>
<param name="innerException">The deserialized exception thrown by the RPC server.</param>
</member>
<member name="M:StreamJsonRpc.RemoteInvocationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteInvocationException" /> class.
</summary>
<param name="info">Serialization info.</param>
<param name="context">Streaming context.</param>
</member>
<member name="P:StreamJsonRpc.RemoteInvocationException.ErrorCode">
<summary>
Gets the value of the <c>error.code</c> field in the response.
</summary>
<value>
The value may be any integer.
The value may be <see cref="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.InvocationError" />, which is a general value used for exceptions thrown on the server when the server does not give an app-specific error code.
</value>
</member>
<member name="P:StreamJsonRpc.RemoteInvocationException.ErrorData">
<inheritdoc cref="P:StreamJsonRpc.RemoteRpcException.ErrorData" />
</member>
<member name="P:StreamJsonRpc.RemoteInvocationException.DeserializedErrorData">
<inheritdoc cref="P:StreamJsonRpc.RemoteRpcException.DeserializedErrorData" />
</member>
<member name="M:StreamJsonRpc.RemoteInvocationException.ToString">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.RemoteMethodNotFoundException">
<summary>
Remote RPC exception that indicates that the requested target method was not found on the server.
</summary>
<remarks>
Check the exception message for the reasons why the method was not found. It's possible that
there was a method with the matching name, but it was not public, had ref or out params, or
its arguments were incompatible with the arguments supplied by the client.
</remarks>
</member>
<member name="M:StreamJsonRpc.RemoteMethodNotFoundException.#ctor(System.String,System.String,StreamJsonRpc.Protocol.JsonRpcErrorCode,System.Object,System.Object)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteMethodNotFoundException" /> class
with supplied message and target method.
</summary>
<param name="message">Exception message describing why the method was not found.</param>
<param name="targetMethod">Target method that was not found.</param>
<param name="errorCode">The value of the error.code field in the response.</param>
<param name="errorData">The value of the error.data field in the response.</param>
<param name="deserializedErrorData">The value of the error.data field in the response, deserialized according to <see cref="M:StreamJsonRpc.JsonRpc.GetErrorDetailsDataType(StreamJsonRpc.Protocol.JsonRpcError)" />.</param>
</member>
<member name="M:StreamJsonRpc.RemoteMethodNotFoundException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteMethodNotFoundException" /> class.
</summary>
<param name="info">Serialization info.</param>
<param name="context">Streaming context.</param>
</member>
<member name="P:StreamJsonRpc.RemoteMethodNotFoundException.TargetMethod">
<summary>
Gets the name of the target method that was not found.
</summary>
</member>
<member name="P:StreamJsonRpc.RemoteMethodNotFoundException.ErrorCode">
<summary>
Gets the value of the <c>error.code</c> field in the response.
</summary>
<value>
The value is typically either <see cref="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.InvalidParams" /> or <see cref="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.MethodNotFound" />.
</value>
</member>
<member name="P:StreamJsonRpc.RemoteMethodNotFoundException.ErrorData">
<inheritdoc cref="P:StreamJsonRpc.RemoteRpcException.ErrorData" />
</member>
<member name="P:StreamJsonRpc.RemoteMethodNotFoundException.DeserializedErrorData">
<inheritdoc cref="P:StreamJsonRpc.RemoteRpcException.DeserializedErrorData" />
</member>
<member name="M:StreamJsonRpc.RemoteMethodNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.RemoteRpcException">
<summary>
Base exception class for any exception that happens while receiving an JSON-RPC communication.
</summary>
</member>
<member name="M:StreamJsonRpc.RemoteRpcException.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteRpcException" /> class.
</summary>
<param name="message">The message that describes the error.</param>
</member>
<member name="M:StreamJsonRpc.RemoteRpcException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteRpcException" /> class.
</summary>
<param name="message">The error message that explains the reason for the exception.</param>
<param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
</member>
<member name="M:StreamJsonRpc.RemoteRpcException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteRpcException" /> class.
</summary>
<param name="info">Serialization info.</param>
<param name="context">Streaming context.</param>
</member>
<member name="P:StreamJsonRpc.RemoteRpcException.ErrorCode">
<summary>
Gets or sets the value of the <c>error.code</c> field in the response, if one is available.
</summary>
</member>
<member name="P:StreamJsonRpc.RemoteRpcException.ErrorData">
<summary>
Gets or sets the <c>error.data</c> value in the error response, if one was provided.
</summary>
<remarks>
Depending on the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> used, the value of this property, if any,
may be a <see cref="T:Newtonsoft.Json.Linq.JToken" /> or a deserialized object.
If a deserialized object, the type of this object is determined by <see cref="M:StreamJsonRpc.JsonRpc.GetErrorDetailsDataType(StreamJsonRpc.Protocol.JsonRpcError)" />.
The default implementation of this method produces a <see cref="T:StreamJsonRpc.Protocol.CommonErrorData" /> object.
</remarks>
</member>
<member name="P:StreamJsonRpc.RemoteRpcException.DeserializedErrorData">
<summary>
Gets or sets the <c>error.data</c> value in the error response, if one was provided.
</summary>
<remarks>
The type of this object is determined by <see cref="M:StreamJsonRpc.JsonRpc.GetErrorDetailsDataType(StreamJsonRpc.Protocol.JsonRpcError)" />.
The default implementation of this method produces a <see cref="T:StreamJsonRpc.Protocol.CommonErrorData" /> object.
</remarks>
</member>
<member name="M:StreamJsonRpc.RemoteRpcException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.RemoteSerializationException">
<summary>
An exception thrown from back to the client from various <see cref="T:StreamJsonRpc.JsonRpc" /> request methods when the server failed to serialize the response.
</summary>
<remarks>
This exception comes from the <see cref="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.ResponseSerializationFailure" /> error code.
</remarks>
</member>
<member name="M:StreamJsonRpc.RemoteSerializationException.#ctor(System.String,System.Object,System.Object)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteSerializationException" /> class.
</summary>
<inheritdoc cref="M:StreamJsonRpc.RemoteRpcException.#ctor(System.String)" />
</member>
<member name="M:StreamJsonRpc.RemoteSerializationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RemoteSerializationException" /> class.
</summary>
<param name="serializationInfo">Serialization info.</param>
<param name="streamingContext">Streaming context.</param>
</member>
<member name="T:StreamJsonRpc.RpcArgumentDeserializationException">
<summary>
An exception thrown from <see cref="M:StreamJsonRpc.Protocol.JsonRpcRequest.TryGetArgumentByNameOrIndex(System.String,System.Int32,System.Type,System.Object@)" />
when the argument cannot be deserialized to the requested type, typically due to an incompatibility or exception thrown from the deserializer.
</summary>
</member>
<member name="M:StreamJsonRpc.RpcArgumentDeserializationException.#ctor(System.String,System.Nullable{System.Int32},System.Type,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RpcArgumentDeserializationException" /> class.
</summary>
<param name="argumentName">The name of the argument from the JSON-RPC request that failed to deserialize, if available.</param>
<param name="argumentPosition">The 0-based index of the argument from the JSON-RPC request that failed to deserialize, if available.</param>
<param name="deserializedType">The <see cref="T:System.Type" /> to which deserialization of the argument was attempted.</param>
<param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
</member>
<member name="M:StreamJsonRpc.RpcArgumentDeserializationException.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RpcArgumentDeserializationException" /> class.
</summary>
<inheritdoc cref="M:StreamJsonRpc.RpcArgumentDeserializationException.#ctor(System.String,System.Exception)" />
</member>
<member name="M:StreamJsonRpc.RpcArgumentDeserializationException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RpcArgumentDeserializationException" /> class.
</summary>
<inheritdoc cref="M:StreamJsonRpc.RemoteRpcException.#ctor(System.String,System.Exception)" />
</member>
<member name="M:StreamJsonRpc.RpcArgumentDeserializationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RpcArgumentDeserializationException" /> class.
</summary>
<param name="info">Serialization info.</param>
<param name="context">Serialization context.</param>
</member>
<member name="P:StreamJsonRpc.RpcArgumentDeserializationException.ArgumentName">
<summary>
Gets the name of the argument from the JSON-RPC request that failed to deserialize, if available.
</summary>
<remarks>
This value will be <see langword="null" /> when the JSON-RPC request uses positional arguments.
</remarks>
</member>
<member name="P:StreamJsonRpc.RpcArgumentDeserializationException.ArgumentPosition">
<summary>
Gets the 0-based index of the argument from the JSON-RPC request that failed to deserialize, if available.
</summary>
<remarks>
This value will be <see langword="null" /> when the JSON-RPC request uses named arguments.
</remarks>
</member>
<member name="P:StreamJsonRpc.RpcArgumentDeserializationException.DeserializedType">
<summary>
Gets the <see cref="T:System.Type" /> to which deserialization of the argument was attempted.
</summary>
</member>
<member name="M:StreamJsonRpc.RpcArgumentDeserializationException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.UnexpectedEmptyEnumerableResponseException.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.UnexpectedEmptyEnumerableResponseException" /> class.
</summary>
<inheritdoc cref="M:StreamJsonRpc.RemoteRpcException.#ctor(System.String)" />
</member>
<member name="M:StreamJsonRpc.UnexpectedEmptyEnumerableResponseException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.UnexpectedEmptyEnumerableResponseException" /> class.
</summary>
<inheritdoc cref="M:StreamJsonRpc.RemoteRpcException.#ctor(System.String,System.Exception)" />
</member>
<member name="T:StreamJsonRpc.UnrecognizedJsonRpcMessageException">
<summary>
An exception thrown when an incoming JSON-RPC message could not be recognized as conforming to any known JSON-RPC message.
</summary>
</member>
<member name="M:StreamJsonRpc.UnrecognizedJsonRpcMessageException.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.UnrecognizedJsonRpcMessageException" /> class.
</summary>
</member>
<member name="M:StreamJsonRpc.UnrecognizedJsonRpcMessageException.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.UnrecognizedJsonRpcMessageException" /> class.
</summary>
<param name="message">The error message that explains the reason for the exception.</param>
</member>
<member name="M:StreamJsonRpc.UnrecognizedJsonRpcMessageException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.UnrecognizedJsonRpcMessageException" /> class.
</summary>
<param name="message">The error message that explains the reason for the exception.</param>
<param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
</member>
<member name="M:StreamJsonRpc.UnrecognizedJsonRpcMessageException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.UnrecognizedJsonRpcMessageException" /> class.
</summary>
<param name="info">Serialization info.</param>
<param name="context">Streaming context.</param>
</member>
<member name="T:StreamJsonRpc.FormatterBase">
<summary>
A base class for <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> implementations
that support exotic types.
</summary>
</member>
<member name="F:StreamJsonRpc.FormatterBase.multiplexingStream">
<summary>
Backing field for the <see cref="T:Nerdbank.Streams.MultiplexingStream" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.FormatterBase.formatterProgressTracker">
<summary>
The <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker" /> we use to support <see cref="T:System.IProgress`1" /> method arguments.
</summary>
</member>
<member name="F:StreamJsonRpc.FormatterBase.duplexPipeTracker">
<summary>
The helper for marshaling pipes as RPC method arguments.
</summary>
</member>
<member name="F:StreamJsonRpc.FormatterBase.enumerableTracker">
<summary>
The tracker we use to support transmission of <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> types.
</summary>
</member>
<member name="F:StreamJsonRpc.FormatterBase.rpcMarshaledContextTracker">
<summary>
The helper for marshaling <see cref="T:StreamJsonRpc.IRpcMarshaledContext`1" /> in RPC method arguments or return values.
</summary>
</member>
<member name="M:StreamJsonRpc.FormatterBase.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.FormatterBase" /> class.
</summary>
</member>
<member name="T:StreamJsonRpc.FormatterBase.IMessageWithTopLevelPropertyBag">
<summary>
An interface implemented by all the <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" />-derived nested types (<see cref="T:StreamJsonRpc.FormatterBase.JsonRpcRequestBase" />, <see cref="T:StreamJsonRpc.FormatterBase.JsonRpcResultBase" />, <see cref="T:StreamJsonRpc.FormatterBase.JsonRpcErrorBase" />) to allow them to carry arbitrary top-level properties on behalf of the application.
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.IMessageWithTopLevelPropertyBag.TopLevelPropertyBag">
<summary>
Gets or sets the top-level property bag for this message.
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.StreamJsonRpc#Reflection#IJsonRpcFormatterState#SerializingMessageWithId">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.FormatterBase.StreamJsonRpc#Reflection#IJsonRpcFormatterState#DeserializingMessageWithId">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.FormatterBase.StreamJsonRpc#Reflection#IJsonRpcFormatterState#SerializingRequest">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.FormatterBase.StreamJsonRpc#IJsonRpcInstanceContainer#Rpc">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.FormatterBase.MultiplexingStream">
<summary>
Gets or sets the <see cref="P:StreamJsonRpc.FormatterBase.MultiplexingStream" /> that may be used to establish out of band communication (e.g. marshal <see cref="T:System.IO.Pipelines.IDuplexPipe" /> arguments).
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.JsonRpc">
<summary>
Gets the <see cref="T:StreamJsonRpc.JsonRpc" /> that is associated with this formatter.
</summary>
<remarks>
This field is used to create the <see cref="T:System.IProgress`1" /> instance that will send the progress notifications when server reports it.
The <see cref="P:StreamJsonRpc.IJsonRpcInstanceContainer.Rpc" /> property helps to ensure that only one <see cref="P:StreamJsonRpc.FormatterBase.JsonRpc" /> instance is associated with this formatter.
</remarks>
</member>
<member name="P:StreamJsonRpc.FormatterBase.FormatterProgressTracker">
<summary>
Gets the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker" /> instance containing useful methods to help on the implementation of message formatters.
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.DuplexPipeTracker">
<summary>
Gets the helper for marshaling pipes as RPC method arguments.
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.EnumerableTracker">
<summary>
Gets the helper for marshaling <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> in RPC method arguments or return values.
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.ApplicableMethodAttributeOnDeserializingMethod">
<summary>
Gets the <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> that is present on the method that may be invoked to serve the incoming request, when applicable.
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.RpcMarshaledContextTracker">
<summary>
Gets the helper for marshaling <see cref="T:StreamJsonRpc.IRpcMarshaledContext`1" /> in RPC method arguments or return values.
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.DeserializingMessage">
<summary>
Gets the message whose arguments are being deserialized.
</summary>
</member>
<member name="M:StreamJsonRpc.FormatterBase.Dispose">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.FormatterBase.Dispose(System.Boolean)">
<summary>
Disposes managed and native resources held by this instance.
</summary>
<param name="disposing"><see langword="true" /> if being disposed; <see langword="false" /> if being finalized.</param>
</member>
<member name="M:StreamJsonRpc.FormatterBase.TrackDeserialization(StreamJsonRpc.Protocol.JsonRpcMessage,System.ReadOnlySpan{System.Reflection.ParameterInfo})">
<summary>
Sets up state to track deserialization of a message.
</summary>
<returns>A value to dispose of when deserialization has completed.</returns>
<inheritdoc cref="M:StreamJsonRpc.FormatterBase.DeserializationTracking.#ctor(StreamJsonRpc.FormatterBase,StreamJsonRpc.Protocol.JsonRpcMessage,System.ReadOnlySpan{System.Reflection.ParameterInfo})" />
</member>
<member name="M:StreamJsonRpc.FormatterBase.TrackSerialization(StreamJsonRpc.Protocol.JsonRpcMessage)">
<summary>
Sets up state to track serialization of a message.
</summary>
<param name="message">The message being serialized.</param>
<returns>A value to dispose of when serialization has completed.</returns>
</member>
<member name="T:StreamJsonRpc.FormatterBase.DeserializationTracking">
<summary>
Tracks deserialization of a message.
</summary>
</member>
<member name="M:StreamJsonRpc.FormatterBase.DeserializationTracking.#ctor(StreamJsonRpc.FormatterBase,StreamJsonRpc.Protocol.JsonRpcMessage,System.ReadOnlySpan{System.Reflection.ParameterInfo})">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.FormatterBase.DeserializationTracking" /> struct.
</summary>
<param name="formatter">The formatter.</param>
<param name="message">The message being deserialized.</param>
<param name="parameters">The signature of the method that will be invoked for the incoming request, if applicable.</param>
</member>
<member name="M:StreamJsonRpc.FormatterBase.DeserializationTracking.Dispose">
<summary>
Clears deserialization state.
</summary>
</member>
<member name="T:StreamJsonRpc.FormatterBase.SerializationTracking">
<summary>
Tracks serialization of a message.
</summary>
</member>
<member name="M:StreamJsonRpc.FormatterBase.SerializationTracking.#ctor(StreamJsonRpc.FormatterBase,StreamJsonRpc.Protocol.JsonRpcMessage)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.FormatterBase.SerializationTracking" /> struct.
</summary>
<param name="formatter">The formatter.</param>
<param name="message">The message being serialized.</param>
</member>
<member name="M:StreamJsonRpc.FormatterBase.SerializationTracking.Dispose">
<summary>
Clears serialization state.
</summary>
</member>
<member name="T:StreamJsonRpc.FormatterBase.TopLevelPropertyBagBase">
<summary>
A base class for top-level property bags that should be declared in the derived formatter class.
</summary>
</member>
<member name="M:StreamJsonRpc.FormatterBase.TopLevelPropertyBagBase.#ctor(System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.FormatterBase.TopLevelPropertyBagBase" /> class.
</summary>
<param name="isOutbound">A value indicating whether this bag belongs to an outbound message.</param>
</member>
<member name="P:StreamJsonRpc.FormatterBase.TopLevelPropertyBagBase.OutboundProperties">
<summary>
Gets a dictionary of top-level properties that should be serialized.
</summary>
<exception cref="T:System.InvalidOperationException">Thrown if called on an inbound message.</exception>
</member>
<member name="M:StreamJsonRpc.FormatterBase.TopLevelPropertyBagBase.TryGetTopLevelProperty``1(System.String,``0@)">
<summary>
Deserializes the value of a top-level property.
</summary>
<typeparam name="T">The type of object expected by the caller.</typeparam>
<param name="name">The name of the top-level property.</param>
<param name="value">Receives the value of the property.</param>
<returns>A value indicating whether the property exists.</returns>
<exception cref="T:System.Exception">A formatter-specific exception may be thrown if the property exists but the value cannot be deserialized to a <typeparamref name="T" />.</exception>
</member>
<member name="T:StreamJsonRpc.FormatterBase.JsonRpcRequestBase">
<summary>
A base class for formatter-specific <see cref="T:StreamJsonRpc.Protocol.JsonRpcRequest" /> implementations.
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.JsonRpcRequestBase.TopLevelPropertyBag">
<summary>
Gets or sets the top-level property bag for this message.
</summary>
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcRequestBase.TrySetTopLevelProperty``1(System.String,``0)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcRequestBase.TryGetTopLevelProperty``1(System.String,``0@)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcRequestBase.CreateTopLevelPropertyBag">
<summary>
Creates a new instance of the top-level property bag for this message.
</summary>
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcRequestBase.ReleaseBuffers">
<summary>
When overridden by derived types, clears references to all buffers that may have been used for deserialization.
</summary>
</member>
<member name="T:StreamJsonRpc.FormatterBase.JsonRpcErrorBase">
<summary>
A base class for formatter-specific <see cref="T:StreamJsonRpc.Protocol.JsonRpcError" /> implementations.
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.JsonRpcErrorBase.TopLevelPropertyBag">
<summary>
Gets or sets the top-level property bag for this message.
</summary>
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcErrorBase.TrySetTopLevelProperty``1(System.String,``0)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcErrorBase.TryGetTopLevelProperty``1(System.String,``0@)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcErrorBase.CreateTopLevelPropertyBag">
<inheritdoc cref="M:StreamJsonRpc.FormatterBase.JsonRpcRequestBase.CreateTopLevelPropertyBag" />
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcErrorBase.ReleaseBuffers">
<inheritdoc cref="M:StreamJsonRpc.FormatterBase.JsonRpcRequestBase.ReleaseBuffers" />
</member>
<member name="T:StreamJsonRpc.FormatterBase.JsonRpcResultBase">
<summary>
A base class for formatter-specific <see cref="T:StreamJsonRpc.Protocol.JsonRpcResult" /> implementations.
</summary>
</member>
<member name="P:StreamJsonRpc.FormatterBase.JsonRpcResultBase.TopLevelPropertyBag">
<summary>
Gets or sets the top-level property bag for this message.
</summary>
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcResultBase.TrySetTopLevelProperty``1(System.String,``0)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcResultBase.TryGetTopLevelProperty``1(System.String,``0@)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcResultBase.CreateTopLevelPropertyBag">
<inheritdoc cref="M:StreamJsonRpc.FormatterBase.JsonRpcRequestBase.CreateTopLevelPropertyBag" />
</member>
<member name="M:StreamJsonRpc.FormatterBase.JsonRpcResultBase.ReleaseBuffers">
<inheritdoc cref="M:StreamJsonRpc.FormatterBase.JsonRpcRequestBase.ReleaseBuffers" />
</member>
<member name="T:StreamJsonRpc.HeaderDelimitedMessageHandler">
<summary>
Adds headers before each text message transmitted over a stream.
</summary>
<remarks>
This is based on the language server protocol spec:
https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#base-protocol.
</remarks>
</member>
<member name="F:StreamJsonRpc.HeaderDelimitedMessageHandler.DefaultContentEncoding">
<summary>
The default encoding to use when writing content,
and to assume as the encoding when reading content
that doesn't have a header identifying its encoding.
</summary>
</member>
<member name="F:StreamJsonRpc.HeaderDelimitedMessageHandler.HeaderEncoding">
<summary>
The encoding to use when writing/reading headers.
</summary>
<remarks>
Although the spec dictates using ASCII encoding, that's equivalent to UTF8
for the characters we expect to be sending and receiving,
and portable profiles don't have ASCII available.
Also note that when writing we use the encoding set by this field,
but when reading, we have highly optimized code that hard-codes the assumption
that each character is one byte.
</remarks>
</member>
<member name="F:StreamJsonRpc.HeaderDelimitedMessageHandler.contentSequenceBuilder">
<summary>
The <see cref="T:System.Buffers.IBufferWriter`1" /> sent to the <see cref="P:StreamJsonRpc.HeaderDelimitedMessageHandler.TextFormatter" /> to write the message.
</summary>
</member>
<member name="F:StreamJsonRpc.HeaderDelimitedMessageHandler.subType">
<summary>
Backing field for <see cref="P:StreamJsonRpc.HeaderDelimitedMessageHandler.SubType" />.
</summary>
</member>
<member name="M:StreamJsonRpc.HeaderDelimitedMessageHandler.#ctor(System.IO.Pipelines.PipeWriter,System.IO.Pipelines.PipeReader,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.HeaderDelimitedMessageHandler" /> class.
</summary>
<param name="writer">The writer to use for transmitting messages.</param>
<param name="reader">The reader to use for receiving messages.</param>
<param name="formatter">The formatter to use to serialize <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> instances.</param>
</member>
<member name="M:StreamJsonRpc.HeaderDelimitedMessageHandler.#ctor(System.IO.Pipelines.IDuplexPipe,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.HeaderDelimitedMessageHandler" /> class.
</summary>
<param name="pipe">The duplex pipe to use for exchanging messages.</param>
<param name="formatter">The formatter to use to serialize <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> instances.</param>
</member>
<member name="M:StreamJsonRpc.HeaderDelimitedMessageHandler.#ctor(System.IO.Stream,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.HeaderDelimitedMessageHandler" /> class.
</summary>
<param name="duplexStream">The stream to use for exchanging messages.</param>
<param name="formatter">The formatter to use to serialize <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> instances.</param>
</member>
<member name="M:StreamJsonRpc.HeaderDelimitedMessageHandler.#ctor(System.IO.Stream)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.HeaderDelimitedMessageHandler" /> class.
</summary>
<param name="duplexStream">The stream to use for transmitting and receiving messages.</param>
</member>
<member name="M:StreamJsonRpc.HeaderDelimitedMessageHandler.#ctor(System.IO.Stream,System.IO.Stream)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.HeaderDelimitedMessageHandler" /> class.
</summary>
<param name="sendingStream">The stream to use for transmitting messages.</param>
<param name="receivingStream">The stream to use for receiving messages.</param>
</member>
<member name="M:StreamJsonRpc.HeaderDelimitedMessageHandler.#ctor(System.IO.Stream,System.IO.Stream,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.HeaderDelimitedMessageHandler" /> class.
</summary>
<param name="sendingStream">The stream to use for transmitting messages.</param>
<param name="receivingStream">The stream to use for receiving messages.</param>
<param name="formatter">The formatter to use to serialize <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> instances.</param>
</member>
<member name="P:StreamJsonRpc.HeaderDelimitedMessageHandler.SubType">
<summary>
Gets or sets the value to use as the subtype in the Content-Type header (e.g. "application/SUBTYPE").
</summary>
<value>The default value is "jsonrpc".</value>
</member>
<member name="P:StreamJsonRpc.HeaderDelimitedMessageHandler.Encoding">
<summary>
Gets or sets the encoding to use for transmitted messages.
</summary>
<exception cref="T:System.NotSupportedException">Thrown if the <see cref="P:StreamJsonRpc.MessageHandlerBase.Formatter" /> in use does not implement <see cref="T:StreamJsonRpc.IJsonRpcMessageTextFormatter" />.</exception>
</member>
<member name="P:StreamJsonRpc.HeaderDelimitedMessageHandler.TextFormatter">
<summary>
Gets the formatter to use to serialize <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> instances as text.
Throws if the formatter is not a text-based formatter.
</summary>
</member>
<member name="M:StreamJsonRpc.HeaderDelimitedMessageHandler.ReadCoreAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.HeaderDelimitedMessageHandler.Write(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.HeaderDelimitedMessageHandler.ParseEncodingFromContentTypeHeader(System.Buffers.ReadOnlySequence{System.Byte})">
<summary>
Extracts the content encoding from a Content-Type header.
</summary>
<param name="contentTypeValue">The value of the Content-Type header.</param>
<returns>The Encoding, if the header specified one; otherwise <see langword="null" />.</returns>
</member>
<member name="T:StreamJsonRpc.IActivityTracingStrategy">
<summary>
Synchronizes contextual activities between an RPC client and server
consistent with the <see href="https://www.w3.org/TR/trace-context/">W3C Trace Context</see> specification.
</summary>
<remarks>
Implementations are required to be thread-safe.
</remarks>
</member>
<member name="M:StreamJsonRpc.IActivityTracingStrategy.ApplyOutboundActivity(StreamJsonRpc.Protocol.JsonRpcRequest)">
<summary>
Applies a contextual activity to an outbound RPC request.
</summary>
<param name="request">The outbound RPC request.</param>
<remarks>
This method may be invoked regardless of whether a contextual activity exists.
</remarks>
</member>
<member name="M:StreamJsonRpc.IActivityTracingStrategy.ApplyInboundActivity(StreamJsonRpc.Protocol.JsonRpcRequest)">
<summary>
Applies an activity described in an incoming RPC request to the current context so the dispatched method can inherit it.
</summary>
<param name="request">The inbound RPC request.</param>
<returns>An optional disposable object that can revert the effects taken by this method at the conclusion of the dispatched RPC server method.</returns>
<remarks>
This method may be invoked regardless of whether an activity is identified in the incoming request.
The <paramref name="request" /> may be referenced by the returned <see cref="T:System.IDisposable" /> value if necessary.
</remarks>
</member>
<member name="T:StreamJsonRpc.ICancellationStrategy">
<summary>
Defines an extensibility point by which RPC methods may be canceled using <see cref="T:System.Threading.CancellationToken" />.
</summary>
<remarks>
<para>A cancellation strategy can be set on the <see cref="P:StreamJsonRpc.JsonRpc.CancellationStrategy" /> property.</para>
<para>The default implementation is defined by <see cref="T:StreamJsonRpc.StandardCancellationStrategy" />.</para>
<para>Implementations must be thread-safe.</para>
</remarks>
</member>
<member name="M:StreamJsonRpc.ICancellationStrategy.CancelOutboundRequest(StreamJsonRpc.RequestId)">
<summary>
Translates a canceled <see cref="T:System.Threading.CancellationToken" /> that was used in an outbound RPC request into terms that
the RPC server can understand.
</summary>
<param name="requestId">The ID of the canceled request.</param>
<remarks>
Every call to this method is followed by a subsequent call to <see cref="M:StreamJsonRpc.ICancellationStrategy.OutboundRequestEnded(StreamJsonRpc.RequestId)" />.
</remarks>
</member>
<member name="M:StreamJsonRpc.ICancellationStrategy.OutboundRequestEnded(StreamJsonRpc.RequestId)">
<summary>
Cleans up any state associated with an earlier <see cref="M:StreamJsonRpc.ICancellationStrategy.CancelOutboundRequest(StreamJsonRpc.RequestId)" /> call.
</summary>
<param name="requestId">The ID of the canceled request.</param>
<remarks>
This method is invoked by <see cref="T:StreamJsonRpc.JsonRpc" /> when the response to a canceled request has been received.
It *may* be invoked for requests for which a prior call to <see cref="M:StreamJsonRpc.ICancellationStrategy.CancelOutboundRequest(StreamJsonRpc.RequestId)" /> was *not* made, due to timing.
But it should never be invoked concurrently with <see cref="M:StreamJsonRpc.ICancellationStrategy.CancelOutboundRequest(StreamJsonRpc.RequestId)" /> for the same <see cref="T:StreamJsonRpc.RequestId" />.
</remarks>
</member>
<member name="M:StreamJsonRpc.ICancellationStrategy.IncomingRequestStarted(StreamJsonRpc.RequestId,System.Threading.CancellationTokenSource)">
<summary>
Associates the <see cref="T:StreamJsonRpc.RequestId" /> from an incoming request with the <see cref="T:System.Threading.CancellationTokenSource" />
that is used for the <see cref="T:System.Threading.CancellationToken" /> passed to that RPC method so it can be canceled later.
</summary>
<param name="requestId">The ID of the incoming request.</param>
<param name="cancellationTokenSource">A means to cancel the <see cref="T:System.Threading.CancellationToken" /> that will be used when invoking the RPC server method.</param>
<remarks>
Implementations are expected to store the arguments in a dictionary so the implementing strategy can cancel it when the trigger occurs.
The trigger is outside the scope of this interface and will vary by implementation.
</remarks>
</member>
<member name="M:StreamJsonRpc.ICancellationStrategy.IncomingRequestEnded(StreamJsonRpc.RequestId)">
<summary>
Cleans up any state associated with an earlier <see cref="M:StreamJsonRpc.ICancellationStrategy.IncomingRequestStarted(StreamJsonRpc.RequestId,System.Threading.CancellationTokenSource)" /> call.
</summary>
<param name="requestId">The ID of the request that has been fulfilled.</param>
<remarks>
Implementations are expected to release memory allocated by a prior call to <see cref="M:StreamJsonRpc.ICancellationStrategy.IncomingRequestStarted(StreamJsonRpc.RequestId,System.Threading.CancellationTokenSource)" />.
This method should *not* dispose of the <see cref="T:System.Threading.CancellationTokenSource" /> received previously as <see cref="T:StreamJsonRpc.JsonRpc" /> owns its lifetime.
</remarks>
</member>
<member name="T:StreamJsonRpc.IJsonRpcAsyncMessageFormatter">
<summary>
An interface that offers <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> serialization to an <see cref="T:System.Buffers.IBufferWriter`1" /> and asynchronous deserialization.
</summary>
</member>
<member name="M:StreamJsonRpc.IJsonRpcAsyncMessageFormatter.DeserializeAsync(System.IO.Pipelines.PipeReader,System.Threading.CancellationToken)">
<summary>
Deserializes a <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" />.
</summary>
<param name="reader">The reader to deserialize from.</param>
<param name="cancellationToken">A cancellation token.</param>
<returns>The deserialized <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" />.</returns>
</member>
<member name="T:StreamJsonRpc.IJsonRpcAsyncMessageTextFormatter">
<summary>
An interface that offers <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> serialization to an <see cref="T:System.Buffers.IBufferWriter`1" /> and asynchronous deserialization
and formats messages as JSON (text).
</summary>
</member>
<member name="M:StreamJsonRpc.IJsonRpcAsyncMessageTextFormatter.DeserializeAsync(System.IO.Pipelines.PipeReader,System.Text.Encoding,System.Threading.CancellationToken)">
<summary>
Deserializes a sequence of bytes to a <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" />.
</summary>
<param name="reader">The reader to deserialize from.</param>
<param name="encoding">The encoding to read the bytes from <paramref name="reader" /> with. Must not be null.</param>
<param name="cancellationToken">A cancellation token.</param>
<returns>The deserialized message.</returns>
</member>
<member name="T:StreamJsonRpc.IJsonRpcClientProxy">
<summary>
Implemented by dynamically generated proxies returned from <see cref="M:StreamJsonRpc.JsonRpc.Attach``1(StreamJsonRpc.IJsonRpcMessageHandler,StreamJsonRpc.JsonRpcProxyOptions)" /> and its overloads
to provide access to additional JSON-RPC functionality.
</summary>
</member>
<member name="P:StreamJsonRpc.IJsonRpcClientProxy.JsonRpc">
<summary>
Gets the <see cref="T:StreamJsonRpc.JsonRpc" /> instance behind this proxy.
</summary>
</member>
<member name="T:StreamJsonRpc.IJsonRpcClientProxyInternal">
<summary>
An interface implemented by dynamic proxies generated by <see cref="T:StreamJsonRpc.ProxyGeneration" />.
</summary>
</member>
<member name="E:StreamJsonRpc.IJsonRpcClientProxyInternal.CallingMethod">
<summary>
Occurs when a method is invoked on the proxy but before it is sent over RPC.
</summary>
<remarks>
The event arg is the CLR name of the method being invoked.
Exceptions thrown from the handler propagate directly to the caller of the proxy and prevent the RPC request from being transmitted.
</remarks>
</member>
<member name="E:StreamJsonRpc.IJsonRpcClientProxyInternal.CalledMethod">
<summary>
Occurs after a method is invoke and transmission over RPC has been queued.
</summary>
<remarks>
The event arg is the CLR name of the method that was invoked.
Exceptions thrown from the handler propagate directly to the caller of the proxy, although the RPC request was already transmitted.
</remarks>
</member>
<member name="T:StreamJsonRpc.IJsonRpcInstanceContainer">
<summary>
Interface optionally implemented by <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> implementations that need a reference to their owner <see cref="T:StreamJsonRpc.JsonRpc" /> class.
</summary>
</member>
<member name="P:StreamJsonRpc.IJsonRpcInstanceContainer.Rpc">
<summary>
Sets the <see cref="T:StreamJsonRpc.JsonRpc" /> instance.
</summary>
<exception cref="T:System.InvalidOperationException">May be thrown when set more than once.</exception>
</member>
<member name="T:StreamJsonRpc.IJsonRpcMessageFactory">
<summary>
An interface that allows <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> instances to act as a factory for <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" />-derived types.
</summary>
</member>
<member name="M:StreamJsonRpc.IJsonRpcMessageFactory.CreateRequestMessage">
<summary>
Creates an instance of <see cref="T:StreamJsonRpc.Protocol.JsonRpcRequest" /> suitable for transmission over the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" />.
</summary>
<returns>An instance of <see cref="T:StreamJsonRpc.Protocol.JsonRpcRequest" />.</returns>
</member>
<member name="M:StreamJsonRpc.IJsonRpcMessageFactory.CreateErrorMessage">
<summary>
Creates an instance of <see cref="T:StreamJsonRpc.Protocol.JsonRpcError" /> suitable for transmission over the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" />.
</summary>
<returns>An instance of <see cref="T:StreamJsonRpc.Protocol.JsonRpcError" />.</returns>
</member>
<member name="M:StreamJsonRpc.IJsonRpcMessageFactory.CreateResultMessage">
<summary>
Creates an instance of <see cref="T:StreamJsonRpc.Protocol.JsonRpcResult" /> suitable for transmission over the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" />.
</summary>
<returns>An instance of <see cref="T:StreamJsonRpc.Protocol.JsonRpcResult" />.</returns>
</member>
<member name="T:StreamJsonRpc.IJsonRpcMessageFormatter">
<summary>
An interface that offers <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> serialization to and from a sequence of bytes.
</summary>
</member>
<member name="M:StreamJsonRpc.IJsonRpcMessageFormatter.Deserialize(System.Buffers.ReadOnlySequence{System.Byte})">
<summary>
Deserializes a <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" />.
</summary>
<param name="contentBuffer">A sequence of bytes to deserialize.</param>
<returns>The deserialized <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" />.</returns>
</member>
<member name="M:StreamJsonRpc.IJsonRpcMessageFormatter.Serialize(System.Buffers.IBufferWriter{System.Byte},StreamJsonRpc.Protocol.JsonRpcMessage)">
<summary>
Serializes a <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" />.
</summary>
<param name="bufferWriter">The receiver of the serialized bytes.</param>
<param name="message">The message to serialize.</param>
</member>
<member name="M:StreamJsonRpc.IJsonRpcMessageFormatter.GetJsonText(StreamJsonRpc.Protocol.JsonRpcMessage)">
<summary>
Gets a JSON representation for a given message for tracing purposes.
</summary>
<param name="message">The message to be traced.</param>
<returns>Any object whose <see cref="M:System.Object.ToString" /> method will produce a human-readable JSON string, suitable for tracing.</returns>
</member>
<member name="T:StreamJsonRpc.IJsonRpcMessageHandler">
<summary>
The contract for sending and receiving JSON-RPC messages.
</summary>
</member>
<member name="P:StreamJsonRpc.IJsonRpcMessageHandler.CanRead">
<summary>
Gets a value indicating whether this message handler can receive messages.
</summary>
</member>
<member name="P:StreamJsonRpc.IJsonRpcMessageHandler.CanWrite">
<summary>
Gets a value indicating whether this message handler can send messages.
</summary>
</member>
<member name="P:StreamJsonRpc.IJsonRpcMessageHandler.Formatter">
<summary>
Gets the formatter used for message serialization.
</summary>
</member>
<member name="M:StreamJsonRpc.IJsonRpcMessageHandler.ReadAsync(System.Threading.CancellationToken)">
<summary>
Reads a distinct and complete message from the transport, waiting for one if necessary.
</summary>
<param name="cancellationToken">A token to cancel the read request.</param>
<returns>The received message, or <see langword="null" /> if the underlying transport ends before beginning another message.</returns>
<exception cref="T:System.InvalidOperationException">Thrown when <see cref="P:StreamJsonRpc.IJsonRpcMessageHandler.CanRead" /> returns <see langword="false" />.</exception>
<exception cref="T:System.IO.EndOfStreamException">Thrown if the transport ends while reading a message.</exception>
<exception cref="T:System.OperationCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled before a new message is received.</exception>
<remarks>
Implementations may assume this method is never called before any async result
from a prior call to this method has completed.
</remarks>
</member>
<member name="M:StreamJsonRpc.IJsonRpcMessageHandler.WriteAsync(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)">
<summary>
Writes a JSON-RPC message to the transport and flushes.
</summary>
<param name="jsonRpcMessage">The message to write.</param>
<param name="cancellationToken">A token to cancel the write request.</param>
<returns>A task that represents the asynchronous operation.</returns>
<exception cref="T:System.InvalidOperationException">Thrown when <see cref="P:StreamJsonRpc.IJsonRpcMessageHandler.CanWrite" /> returns <see langword="false" />.</exception>
<exception cref="T:System.OperationCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled before message transmission begins.</exception>
<remarks>
Implementations should expect this method to be invoked concurrently
and use a queue to preserve message order as they are transmitted one at a time.
</remarks>
</member>
<member name="T:StreamJsonRpc.IJsonRpcMessageTextFormatter">
<summary>
An <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> that formats messages as JSON (text).
</summary>
</member>
<member name="P:StreamJsonRpc.IJsonRpcMessageTextFormatter.Encoding">
<summary>
Gets or sets the encoding used for serialization for methods that do not take an explicit <see cref="T:System.Text.Encoding" />.
</summary>
<value>Never null.</value>
<exception cref="T:System.ArgumentNullException">Thrown at an attempt to set the value to null.</exception>
</member>
<member name="M:StreamJsonRpc.IJsonRpcMessageTextFormatter.Deserialize(System.Buffers.ReadOnlySequence{System.Byte},System.Text.Encoding)">
<summary>
Deserializes a sequence of bytes to a <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" />.
</summary>
<param name="contentBuffer">The bytes to deserialize.</param>
<param name="encoding">The encoding to read the bytes in <paramref name="contentBuffer" /> with. Must not be null.</param>
<returns>The deserialized message.</returns>
</member>
<member name="T:StreamJsonRpc.IRpcMarshaledContext`1">
<summary>
Represents an object to be marshaled and provides check or influence its lifetime.
</summary>
<typeparam name="T">The interface type whose methods are exposed for RPC invocation on the target object.</typeparam>
<remarks>
When an object implementing this interface is disposed
the marshaling relationship is immediately terminated.
This releases resources allocated to facilitating the marshaling of the object
and prevents any further invocations of the object by the remote party.
If the underlying object implements <see cref="T:System.IDisposable" /> then its
<see cref="M:System.IDisposable.Dispose" /> method is also invoked.
</remarks>
<devremarks>
This type is an interface rather than a class so that users can enjoy covariance on the generic type parameter.
</devremarks>
</member>
<member name="E:StreamJsonRpc.IRpcMarshaledContext`1.Disposed">
<summary>
Occurs when the marshalling relationship is released,
whether by a local call to <see cref="M:System.IDisposable.Dispose" />
or at the remote party's request.
</summary>
</member>
<member name="P:StreamJsonRpc.IRpcMarshaledContext`1.Proxy">
<summary>
Gets the marshalable proxy that should be used in the RPC message.
</summary>
</member>
<member name="P:StreamJsonRpc.IRpcMarshaledContext`1.JsonRpcTargetOptions">
<summary>
Gets the <see cref="P:StreamJsonRpc.IRpcMarshaledContext`1.JsonRpcTargetOptions" /> to associate with this object when it becomes a RPC target.
</summary>
</member>
<member name="T:StreamJsonRpc.JsonMessageFormatter">
<summary>
Uses Newtonsoft.Json serialization to serialize <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> as JSON (text).
</summary>
<remarks>
Each instance of this class may only be used with a single <see cref="T:StreamJsonRpc.JsonRpc" /> instance.
</remarks>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.ExceptionDataKey">
<summary>
The key into an <see cref="P:System.Exception.Data" /> dictionary whose value may be a <see cref="T:Newtonsoft.Json.Linq.JToken" /> that failed deserialization.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.LoadSettings">
<summary>
JSON parse settings.
</summary>
<remarks>
We save MBs of memory by turning off line info handling.
</remarks>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.SupportedProtocolVersions">
<summary>
A collection of supported protocol versions.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.DefaultEncoding">
<summary>
UTF-8 encoding without a preamble.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.JsonCharArrayPool">
<summary>
The <see cref="T:System.Char" /> array pool to use for each <see cref="T:Newtonsoft.Json.JsonTextReader" /> instance.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.DefaultSerializer">
<summary>
An exactly default instance of the <see cref="P:StreamJsonRpc.JsonMessageFormatter.JsonSerializer" /> to use where no special settings
are needed.
</summary>
<remarks>
This is useful when calling such APIs as <see cref="M:Newtonsoft.Json.Linq.JToken.FromObject(System.Object,Newtonsoft.Json.JsonSerializer)" />
to avoid the simpler overloads that rely on <see cref="P:Newtonsoft.Json.JsonConvert.DefaultSettings" /> which is a mutable static.
By sharing this reliably untainted instance, we avoid allocating a new serializer with each invocation.
</remarks>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.bufferTextWriter">
<summary>
The reusable <see cref="T:System.IO.TextWriter" /> to use with newtonsoft.json's serializer.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.sequenceTextReader">
<summary>
The reusable <see cref="T:System.IO.TextReader" /> to use with newtonsoft.json's deserializer.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.syncObject">
<summary>
Object used to lock when running mutually exclusive operations related to this <see cref="T:StreamJsonRpc.JsonMessageFormatter" /> instance.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.observedTransmittedRequestWithStringId">
<summary>
A value indicating whether a request where <see cref="P:StreamJsonRpc.Protocol.JsonRpcRequest.RequestId" /> is a <see cref="T:System.String" />
has been transmitted.
</summary>
<remarks>
This is useful to detect whether <see cref="T:StreamJsonRpc.JsonRpc" /> is operating in its default mode of producing
integer-based values for <see cref="P:StreamJsonRpc.Protocol.JsonRpcRequest.RequestId" />, which informs us whether we should
type coerce strings in response messages back to integers to accommodate JSON-RPC servers
that improperly convert our integers to strings.
</remarks>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.protocolVersion">
<summary>
The version of the JSON-RPC protocol being emulated by this instance.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.encoding">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonMessageFormatter.Encoding" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.formatterInitializationChecked">
<summary>
Whether <see cref="M:StreamJsonRpc.JsonMessageFormatter.EnforceFormatterIsInitialized" /> has been executed.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonMessageFormatter" /> class
that uses JsonProgress (without the preamble) for its text encoding.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.#ctor(System.Text.Encoding)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonMessageFormatter" /> class.
</summary>
<param name="encoding">The encoding to use for the JSON text.</param>
</member>
<member name="P:StreamJsonRpc.JsonMessageFormatter.Encoding">
<summary>
Gets or sets the encoding to use for transmitted messages.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonMessageFormatter.ProtocolVersion">
<summary>
Gets or sets the version of the JSON-RPC protocol emulated by this instance.
</summary>
<value>The default value is 2.0.</value>
</member>
<member name="P:StreamJsonRpc.JsonMessageFormatter.JsonSerializer">
<summary>
Gets the <see cref="T:Newtonsoft.Json.JsonSerializer" /> used when serializing and deserializing method arguments and return values.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonMessageFormatter.MultiplexingStream">
<inheritdoc cref="P:StreamJsonRpc.FormatterBase.MultiplexingStream" />
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.Deserialize(System.Buffers.ReadOnlySequence{System.Byte})">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.Deserialize(System.Buffers.ReadOnlySequence{System.Byte},System.Text.Encoding)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.DeserializeAsync(System.IO.Pipelines.PipeReader,System.Text.Encoding,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.DeserializeAsync(System.IO.Pipelines.PipeReader,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.Serialize(System.Buffers.IBufferWriter{System.Byte},StreamJsonRpc.Protocol.JsonRpcMessage)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.Deserialize(Newtonsoft.Json.Linq.JToken)">
<summary>
Deserializes a <see cref="T:Newtonsoft.Json.Linq.JToken" /> to a <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" />.
</summary>
<param name="json">The JSON to deserialize.</param>
<returns>The deserialized message.</returns>
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.Serialize(StreamJsonRpc.Protocol.JsonRpcMessage)">
<summary>
Serializes a <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> to a <see cref="T:Newtonsoft.Json.Linq.JToken" />.
</summary>
<param name="message">The message to serialize.</param>
<returns>The JSON of the message.</returns>
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.GetJsonText(StreamJsonRpc.Protocol.JsonRpcMessage)">
<inheritdoc />
<devremarks>
Do *NOT* change this to simply forward to <see cref="M:StreamJsonRpc.JsonMessageFormatter.Serialize(StreamJsonRpc.Protocol.JsonRpcMessage)" /> since that
mutates the <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> itself by tokenizing arguments as if we were going to transmit them
which BREAKS argument parsing for incoming named argument messages such as $/cancelRequest.
</devremarks>
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.StreamJsonRpc#IJsonRpcMessageFactory#CreateRequestMessage">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.StreamJsonRpc#IJsonRpcMessageFactory#CreateErrorMessage">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.StreamJsonRpc#IJsonRpcMessageFactory#CreateResultMessage">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.TokenizeUserData(StreamJsonRpc.Protocol.JsonRpcMessage)">
<summary>
Converts user data to <see cref="T:Newtonsoft.Json.Linq.JToken" /> objects using all applicable user-provided <see cref="T:Newtonsoft.Json.JsonConverter" /> instances.
</summary>
<param name="jsonRpcMessage">A JSON-RPC message.</param>
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.TokenizeUserData(System.Type,System.Object)">
<summary>
Converts a single user data value to a <see cref="T:Newtonsoft.Json.Linq.JToken" />, using all applicable user-provided <see cref="T:Newtonsoft.Json.JsonConverter" /> instances.
</summary>
<param name="declaredType">The <see cref="T:System.Type" /> that the <paramref name="value" /> is declared to be, if available.</param>
<param name="value">The value to tokenize.</param>
<returns>The <see cref="T:Newtonsoft.Json.Linq.JToken" /> instance.</returns>
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.CreateJTokenWriter">
<summary>
Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JTokenWriter" /> class
with settings initialized to those set on the <see cref="P:StreamJsonRpc.JsonMessageFormatter.JsonSerializer" /> object.
</summary>
<returns>The initialized instance of <see cref="T:Newtonsoft.Json.Linq.JTokenWriter" />.</returns>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.TopLevelPropertyBag.incomingEnvelope">
<summary>
The incoming message.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.TopLevelPropertyBag.#ctor(Newtonsoft.Json.JsonSerializer,Newtonsoft.Json.Linq.JObject)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonMessageFormatter.TopLevelPropertyBag" /> class
for use with an incoming message.
</summary>
<param name="jsonSerializer">The serializer to use.</param>
<param name="incomingMessage">The incoming message.</param>
</member>
<member name="M:StreamJsonRpc.JsonMessageFormatter.TopLevelPropertyBag.#ctor(Newtonsoft.Json.JsonSerializer)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonMessageFormatter.TopLevelPropertyBag" /> class
for use with an outcoming message.
</summary>
<param name="jsonSerializer">The serializer to use.</param>
</member>
<member name="T:StreamJsonRpc.JsonMessageFormatter.JsonArrayPool`1">
<summary>
Adapts the .NET <see cref="T:System.Buffers.ArrayPool`1" /> to Newtonsoft.Json's <see cref="T:Newtonsoft.Json.IArrayPool`1" /> interface.
</summary>
</member>
<member name="T:StreamJsonRpc.JsonMessageFormatter.JsonProgressClientConverter">
<summary>
Converts an instance of <see cref="T:System.IProgress`1" /> to a progress token.
</summary>
</member>
<member name="T:StreamJsonRpc.JsonMessageFormatter.JsonProgressServerConverter">
<summary>
Converts a progress token to an <see cref="T:System.IProgress`1" />.
</summary>
</member>
<member name="T:StreamJsonRpc.JsonMessageFormatter.AsyncEnumerableConsumerConverter">
<summary>
Converts an enumeration token to an <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />.
</summary>
</member>
<member name="T:StreamJsonRpc.JsonMessageFormatter.AsyncEnumerableGeneratorConverter">
<summary>
Converts an instance of <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> to an enumeration token.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonMessageFormatter.ExceptionConverter.exceptionRecursionCounter">
<summary>
Tracks recursion count while serializing or deserializing an exception.
</summary>
</member>
<member name="T:StreamJsonRpc.JsonRpc">
<summary>
Manages a JSON-RPC connection with another entity over a <see cref="T:System.IO.Stream" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.DefaultSynchronizationContext">
<summary>
The <see cref="T:System.Threading.SynchronizationContext" /> to use to schedule work on the threadpool.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.JoinableTaskTokenHeaderName">
<summary>
The name of the top-level field that we add to JSON-RPC messages to track JoinableTask context to mitigate deadlocks.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.dispatcherMapLock">
<summary>
The object to lock when accessing the <see cref="F:StreamJsonRpc.JsonRpc.resultDispatcherMap" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.disconnectedEventLock">
<summary>
The object to lock when accessing the <see cref="E:StreamJsonRpc.JsonRpc.DisconnectedPrivate" /> member.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.resultDispatcherMap">
<summary>
A map of outbound calls awaiting responses.
Lock the <see cref="F:StreamJsonRpc.JsonRpc.dispatcherMapLock" /> object for all access to this member.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.cancelPendingOutboundRequestAction">
<summary>
A delegate for the <see cref="M:StreamJsonRpc.JsonRpc.CancelPendingOutboundRequest(System.Object)" /> method.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.disconnectedSource">
<summary>
The source for the <see cref="P:StreamJsonRpc.JsonRpc.DisconnectedToken" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.completionSource">
<summary>
The completion source behind <see cref="P:StreamJsonRpc.JsonRpc.Completion" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.dispatchCompletionSource">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpc.DispatchCompletion" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.rpcTargetInfo">
<summary>
Tracks RPC target objects.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.joinableTaskTokenWithoutJtf">
<summary>
Carries the value from a <see cref="F:StreamJsonRpc.JsonRpc.JoinableTaskTokenHeaderName" /> when <see cref="P:StreamJsonRpc.JsonRpc.JoinableTaskFactory" /> has not been set.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.remoteRpcTargets">
<summary>
List of remote RPC targets to call if connection should be relayed.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.traceSource">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpc.TraceSource" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.cancelLocallyInvokedMethodsWhenConnectionIsClosed">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpc.CancelLocallyInvokedMethodsWhenConnectionIsClosed" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.synchronizationContext">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpc.SynchronizationContext" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.joinableTaskFactory">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpc.JoinableTaskFactory" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.cancellationStrategy">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpc.CancellationStrategy" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.activityTracingStrategy">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpc.ActivityTracingStrategy" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.exceptionStrategy">
<summary>
Backing field for <see cref="P:StreamJsonRpc.JsonRpc.ExceptionStrategy" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.exceptionSettings">
<summary>
Backing field for <see cref="P:StreamJsonRpc.JsonRpc.ExceptionOptions" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.requestTransmissionAborted">
<summary>
Backing field for the <see cref="E:StreamJsonRpc.Reflection.IJsonRpcFormatterCallbacks.RequestTransmissionAborted" /> event.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.responseReceived">
<summary>
Backing field for the <see cref="E:StreamJsonRpc.Reflection.IJsonRpcFormatterCallbacks.ResponseReceived" /> event.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.responseSent">
<summary>
Backing field for the <see cref="E:StreamJsonRpc.Reflection.IJsonRpcFormatterCallbacks.ResponseSent" /> event.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpc.#ctor(System.IO.Stream)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpc" /> class that uses
<see cref="T:StreamJsonRpc.HeaderDelimitedMessageHandler" /> around messages serialized using the
<see cref="T:StreamJsonRpc.JsonMessageFormatter" />.
</summary>
<param name="stream">The full duplex stream used to transmit and receive messages.</param>
<remarks>
It is important to call <see cref="M:StreamJsonRpc.JsonRpc.StartListening" /> to begin receiving messages.
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpc.#ctor(System.IO.Stream,System.IO.Stream,System.Object)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpc" /> class that uses
<see cref="T:StreamJsonRpc.HeaderDelimitedMessageHandler" /> around messages serialized using the
<see cref="T:StreamJsonRpc.JsonMessageFormatter" />.
</summary>
<param name="sendingStream">The stream used to transmit messages. May be null.</param>
<param name="receivingStream">The stream used to receive messages. May be null.</param>
<param name="target">An optional target object to invoke when incoming RPC requests arrive.</param>
<remarks>
It is important to call <see cref="M:StreamJsonRpc.JsonRpc.StartListening" /> to begin receiving messages.
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpc.#ctor(StreamJsonRpc.IJsonRpcMessageHandler,System.Object)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpc" /> class.
</summary>
<param name="messageHandler">The message handler to use to transmit and receive RPC messages.</param>
<param name="target">An optional target object to invoke when incoming RPC requests arrive.</param>
<remarks>
It is important to call <see cref="M:StreamJsonRpc.JsonRpc.StartListening" /> to begin receiving messages.
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpc.#ctor(StreamJsonRpc.IJsonRpcMessageHandler)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpc" /> class.
</summary>
<param name="messageHandler">The message handler to use to transmit and receive RPC messages.</param>
<remarks>
It is important to call <see cref="M:StreamJsonRpc.JsonRpc.StartListening" /> to begin receiving messages.
</remarks>
</member>
<member name="E:StreamJsonRpc.JsonRpc.Disconnected">
<summary>
Raised when the underlying stream is disconnected.
</summary>
</member>
<member name="E:StreamJsonRpc.JsonRpc.StreamJsonRpc#Reflection#IJsonRpcFormatterCallbacks#RequestTransmissionAborted">
<inheritdoc />
</member>
<member name="E:StreamJsonRpc.JsonRpc.StreamJsonRpc#Reflection#IJsonRpcFormatterCallbacks#ResponseReceived">
<inheritdoc />
</member>
<member name="E:StreamJsonRpc.JsonRpc.StreamJsonRpc#Reflection#IJsonRpcFormatterCallbacks#ResponseSent">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.JsonRpc.TraceEvents">
<summary>
Event IDs raised to our <see cref="P:StreamJsonRpc.JsonRpc.TraceSource" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.LocalMethodAdded">
<summary>
Occurs when a local RPC method is added to our mapping table.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.LocalMethodNotAdded">
<summary>
Occurs when a candidate local RPC method is NOT added to our mapping table.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.LocalEventListenerAdded">
<summary>
Occurs when an event handler subscribes to an event on an added target object.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.ListeningStarted">
<summary>
Occurs when this instance starts listening for incoming RPC messages.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.ReceivedCancellation">
<summary>
Occurs when a notification arrives that is attempting to cancel a prior request.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.RequestWithoutMatchingTarget">
<summary>
Occurs when a JSON-RPC request or notification was received, but no local method is found to invoke for it.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.RequestReceived">
<summary>
Occurs when a <see cref="T:StreamJsonRpc.Protocol.JsonRpcRequest" /> is received.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.MessageReceived">
<summary>
Occurs when any <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> is received.
At <see cref="F:System.Diagnostics.TraceLevel.Info" />, <see cref="M:System.Diagnostics.TraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object)" />
is invoked with the <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> that is received.
At <see cref="F:System.Diagnostics.TraceLevel.Verbose" />, <see cref="M:System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])" />
is invoked with the JSON representation of the message.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.MessageSent">
<summary>
Occurs when any <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> is transmitted.
At <see cref="F:System.Diagnostics.TraceLevel.Info" />, <see cref="M:System.Diagnostics.TraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object)" />
is invoked with the <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> that is transmitted.
At <see cref="F:System.Diagnostics.TraceLevel.Verbose" />, <see cref="M:System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])" />
is invoked with the JSON representation of the message.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.LocalInvocation">
<summary>
Occurs when a <see cref="T:StreamJsonRpc.Protocol.JsonRpcRequest" /> is received and successfully mapped to a local method to be invoked.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.LocalInvocationError">
<summary>
Occurs when a locally invoked method from a <see cref="T:StreamJsonRpc.Protocol.JsonRpcRequest" /> throws an exception (or returns a faulted <see cref="T:System.Threading.Tasks.Task" />).
<see cref="M:System.Diagnostics.TraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object[])" /> is invoked with the thrown <see cref="T:System.Exception" />, request method name, request ID, and the argument object/array.
<see cref="M:System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])" /> is invoked with a text message formatted with exception information.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.ReceivedResult">
<summary>
Occurs when a successful result message for a prior invocation is received.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.ReceivedError">
<summary>
Occurs when an error message for a prior invocation is received.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.Closed">
<summary>
Occurs when the connection is closed.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.RequestAbandonedByRemote">
<summary>
A local request is canceled because the remote party terminated the connection.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.LocalContractViolation">
<summary>
An extensibility point was leveraged locally and broke the contract.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.ProgressNotificationError">
<summary>
An exception occurred when reading or writing the $/progress notification.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.MethodArgumentDeserializationFailure">
<summary>
An incoming RPC call included an argument that failed to deserialize to the type on a candidate target method's proposed matching parameter.
</summary>
<remarks>
This may not represent a fatal error. When there are multiple overloads to choose from,
choosing the overload to invoke involves attempts to deserialize arguments to the types dictated by each overload's parameters.
Thus a failure recorded in this event may be followed by a successful deserialization to another parameter type and invocation of a different overload.
</remarks>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.TransmissionFailed">
<summary>
An outgoing RPC message was not sent due to an exception, possibly a serialization failure.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.ExceptionTypeNotFound">
<summary>
An incoming <see cref="T:System.Exception" /> cannot be deserialized to its original type because the type could not be loaded.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.ExceptionNotSerializable">
<summary>
An instance of an <see cref="T:System.Exception" />-derived type was serialized as its base type because it did not have the <see cref="T:System.SerializableAttribute" /> applied.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpc.TraceEvents.ExceptionNotDeserializable">
<summary>
An <see cref="T:System.Exception" />-derived type could not be deserialized because it was missing a deserializing constructor.
A base-type that <em>does</em> offer the constructor will be instantiated instead.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpc.SynchronizationContext">
<summary>
Gets or sets the <see cref="T:System.Threading.SynchronizationContext" /> to use when invoking methods requested by the remote party.
</summary>
<value>Defaults to null.</value>
<remarks>
When not specified, methods are invoked on the threadpool.
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpc.JoinableTaskFactory">
<summary>
Gets or sets the <see cref="P:StreamJsonRpc.JsonRpc.JoinableTaskFactory" /> to participate in to mitigate deadlocks with the main thread.
</summary>
<value>Defaults to null.</value>
</member>
<member name="P:StreamJsonRpc.JsonRpc.Completion">
<summary>
Gets a <see cref="T:System.Threading.Tasks.Task" /> that completes when this instance is disposed or when listening has stopped
whether by error, disposal or the stream closing.
</summary>
<remarks>
<para>
The returned <see cref="T:System.Threading.Tasks.Task" /> may transition to a faulted state
for exceptions fatal to the protocol or this instance.
</para>
<para>
When local RPC target objects or methods have been added, those methods may still be running from prior RPC requests
when this property completes. Track their completion with the <see cref="P:StreamJsonRpc.JsonRpc.DispatchCompletion" /> property.
</para>
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpc.DispatchCompletion">
<summary>
Gets a <see cref="T:System.Threading.Tasks.Task" /> that completes when no local target methods are executing from an RPC call.
</summary>
<remarks>
If the JSON-RPC connection is still active when retrieving this property's value, the returned <see cref="T:System.Threading.Tasks.Task" /> will complete
when no local dispatches are in progress, even if the connection is still active.
Retrieving the property after a previously obtained <see cref="T:System.Threading.Tasks.Task" /> has completed will result in a new, incomplete <see cref="T:System.Threading.Tasks.Task" /> if incoming requests are currently in dispatch.
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpc.AllowModificationWhileListening">
<summary>
Gets or sets a value indicating whether configuration of this instance
can be changed after <see cref="M:StreamJsonRpc.JsonRpc.StartListening" /> or <see cref="M:StreamJsonRpc.JsonRpc.Attach(System.IO.Stream,System.Object)" />
has been called.
</summary>
<value>The default is <see langword="false" />.</value>
<remarks>
By default, all configuration such as target objects and target methods must be set
before listening starts to avoid a race condition whereby we receive a method invocation
message before we have wired up a handler for it and must reject the call.
But in some advanced scenarios, it may be necessary to add target methods after listening
has started (e.g. in response to an invocation that enables additional functionality),
in which case setting this property to <see langword="true" /> is appropriate.
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpc.IsDisposed">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.JsonRpc.CancelLocallyInvokedMethodsWhenConnectionIsClosed">
<summary>
Gets or sets a value indicating whether to cancel all methods dispatched locally
that accept a <see cref="T:System.Threading.CancellationToken" /> when the connection with the remote party is closed.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpc.TraceSource">
<summary>
Gets or sets the <see cref="T:System.Diagnostics.TraceSource" /> used to trace JSON-RPC messages and events.
</summary>
<value>The value can never be null.</value>
<exception cref="T:System.ArgumentNullException">Thrown by the setter if a null value is provided.</exception>
</member>
<member name="P:StreamJsonRpc.JsonRpc.CancellationStrategy">
<summary>
Gets or sets the cancellation strategy to use.
</summary>
<value>The default value is the <see cref="T:StreamJsonRpc.StandardCancellationStrategy" /> which uses the "$/cancelRequest" notification.</value>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.ThrowIfConfigurationLocked" path="/exception" />
</member>
<member name="P:StreamJsonRpc.JsonRpc.ExceptionStrategy">
<summary>
Gets or sets a value indicating whether exceptions thrown by the RPC server should be fully serialized
for the RPC client to then deserialize.
</summary>
<value>The default value is <see cref="F:StreamJsonRpc.ExceptionProcessing.CommonErrorData" />.</value>
<remarks>
This setting influences the implementations of error processing virtual methods on this class.
When those methods are overridden by a derived type, this property may have different or no impact on behavior.
This does not alter how <see cref="T:StreamJsonRpc.LocalRpcException" /> behaves when thrown, since that exception type supplies all the details of the error response directly.
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpc.ExceptionOptions">
<summary>
Gets or sets the settings to use for serializing/deserializing exceptions.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpc.ActivityTracingStrategy">
<summary>
Gets or sets the strategy for propagating activity IDs over RPC.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpc.MessageHandler">
<summary>
Gets the message handler used to send and receive messages.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpc.DisconnectedToken">
<summary>
Gets a token that is cancelled when the connection is lost.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpc.SynchronizationContextOrDefault">
<summary>
Gets the user-specified <see cref="P:StreamJsonRpc.JsonRpc.SynchronizationContext" /> or a default instance that will execute work on the threadpool.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpc.HasListeningStarted">
<summary>
Gets a value indicating whether listening has started.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach(System.IO.Stream,System.Object)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpc" /> class that uses
<see cref="T:StreamJsonRpc.HeaderDelimitedMessageHandler" /> around messages serialized using the
<see cref="T:StreamJsonRpc.JsonMessageFormatter" />, and immediately starts listening.
</summary>
<param name="stream">A bidirectional stream to send and receive RPC messages on.</param>
<param name="target">An optional target object to invoke when incoming RPC requests arrive.</param>
<returns>The initialized and listening <see cref="T:StreamJsonRpc.JsonRpc" /> object.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach(System.IO.Stream,System.IO.Stream,System.Object)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpc" /> class that uses
<see cref="T:StreamJsonRpc.HeaderDelimitedMessageHandler" /> around messages serialized using the
<see cref="T:StreamJsonRpc.JsonMessageFormatter" />, and immediately starts listening.
</summary>
<param name="sendingStream">The stream used to transmit messages. May be null.</param>
<param name="receivingStream">The stream used to receive messages. May be null.</param>
<param name="target">An optional target object to invoke when incoming RPC requests arrive.</param>
<returns>The initialized and listening <see cref="T:StreamJsonRpc.JsonRpc" /> object.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach``1(System.IO.Stream)">
<summary>
Creates a JSON-RPC client proxy that conforms to the specified server interface.
</summary>
<typeparam name="T">The interface that describes the functions available on the remote end.</typeparam>
<param name="stream">The bidirectional stream used to send and receive JSON-RPC messages.</param>
<returns>
An instance of the generated proxy.
In addition to implementing <typeparamref name="T" />, it also implements <see cref="T:System.IDisposable" />
and should be disposed of to close the connection.
</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach``1(System.IO.Stream,System.IO.Stream)">
<summary>
Creates a JSON-RPC client proxy that conforms to the specified server interface.
</summary>
<typeparam name="T">The interface that describes the functions available on the remote end.</typeparam>
<param name="sendingStream">The stream used to transmit messages. May be null.</param>
<param name="receivingStream">The stream used to receive messages. May be null.</param>
<returns>
An instance of the generated proxy.
In addition to implementing <typeparamref name="T" />, it also implements <see cref="T:System.IDisposable" />
and should be disposed of to close the connection.
</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach``1(StreamJsonRpc.IJsonRpcMessageHandler)">
<summary>
Creates a JSON-RPC client proxy that conforms to the specified server interface.
</summary>
<typeparam name="T">The interface that describes the functions available on the remote end.</typeparam>
<param name="handler">The message handler to use.</param>
<returns>
An instance of the generated proxy.
In addition to implementing <typeparamref name="T" />, it also implements <see cref="T:System.IDisposable" />
and should be disposed of to close the connection.
</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach``1(StreamJsonRpc.IJsonRpcMessageHandler,StreamJsonRpc.JsonRpcProxyOptions)">
<summary>
Creates a JSON-RPC client proxy that conforms to the specified server interface.
</summary>
<typeparam name="T">The interface that describes the functions available on the remote end.</typeparam>
<param name="handler">The message handler to use.</param>
<param name="options">A set of customizations for how the client proxy is wired up. If <see langword="null" />, default options will be used.</param>
<returns>
An instance of the generated proxy.
In addition to implementing <typeparamref name="T" />, it also implements <see cref="T:System.IDisposable" />
and should be disposed of to close the connection.
</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach``1">
<summary>
Creates a JSON-RPC client proxy that conforms to the specified server interface.
</summary>
<typeparam name="T">The interface that describes the functions available on the remote end.</typeparam>
<returns>An instance of the generated proxy.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach``1(StreamJsonRpc.JsonRpcProxyOptions)">
<summary>
Creates a JSON-RPC client proxy that conforms to the specified server interface.
</summary>
<typeparam name="T">The interface that describes the functions available on the remote end.</typeparam>
<param name="options">A set of customizations for how the client proxy is wired up. If <see langword="null" />, default options will be used.</param>
<returns>An instance of the generated proxy.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach(System.Type)">
<summary>
Creates a JSON-RPC client proxy that conforms to the specified server interface.
</summary>
<param name="interfaceType">The interface that describes the functions available on the remote end.</param>
<returns>An instance of the generated proxy.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach(System.Type,StreamJsonRpc.JsonRpcProxyOptions)">
<summary>
Creates a JSON-RPC client proxy that conforms to the specified server interface.
</summary>
<param name="interfaceType">The interface that describes the functions available on the remote end.</param>
<param name="options">A set of customizations for how the client proxy is wired up. If <see langword="null" />, default options will be used.</param>
<returns>An instance of the generated proxy.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddLocalRpcTarget(System.Object)">
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.AddLocalRpcTarget(System.Object,StreamJsonRpc.JsonRpcTargetOptions)" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddLocalRpcTarget(System.Object,StreamJsonRpc.JsonRpcTargetOptions)">
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.AddLocalRpcTarget(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions)" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddLocalRpcTarget``1(``0,StreamJsonRpc.JsonRpcTargetOptions)">
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.AddLocalRpcTarget(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions)" />
<typeparam name="T"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.AddLocalRpcTarget(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions)" path="/param[@name='exposingMembersOn']" /></typeparam>
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddLocalRpcTarget(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions)">
<inheritdoc cref="M:StreamJsonRpc.Reflection.RpcTargetInfo.AddLocalRpcTarget(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions,System.Boolean)" />
<exception cref="T:System.InvalidOperationException">Thrown if called after <see cref="M:StreamJsonRpc.JsonRpc.StartListening" /> is called and <see cref="P:StreamJsonRpc.JsonRpc.AllowModificationWhileListening" /> is <see langword="false" />.</exception>
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddRemoteRpcTarget(StreamJsonRpc.JsonRpc)">
<summary>
Adds a remote rpc connection so calls can be forwarded to the remote target if local targets do not handle it.
</summary>
<param name="remoteTarget">The json rpc connection to the remote target.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddLocalRpcMethod(System.String,System.Delegate)">
<summary>
Adds a handler for an RPC method with a given name.
</summary>
<param name="rpcMethodName">
The name of the method as it is identified by the incoming JSON-RPC message.
It need not match the name of the CLR method/delegate given here.
</param>
<param name="handler">
The method or delegate to invoke when a matching RPC message arrives.
This method may accept parameters from the incoming JSON-RPC message.
</param>
<exception cref="T:System.InvalidOperationException">Thrown if called after <see cref="M:StreamJsonRpc.JsonRpc.StartListening" /> is called and <see cref="P:StreamJsonRpc.JsonRpc.AllowModificationWhileListening" /> is <see langword="false" />.</exception>
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddLocalRpcMethod(System.String,System.Reflection.MethodInfo,System.Object)">
<summary>
Adds a handler for an RPC method with a given name.
</summary>
<param name="rpcMethodName">
The name of the method as it is identified by the incoming JSON-RPC message.
It need not match the name of the CLR method/delegate given here.
</param>
<param name="handler">
The method or delegate to invoke when a matching RPC message arrives.
This method may accept parameters from the incoming JSON-RPC message.
</param>
<param name="target">An instance of the type that defines <paramref name="handler" /> which should handle the invocation.</param>
<exception cref="T:System.InvalidOperationException">Thrown if called after <see cref="M:StreamJsonRpc.JsonRpc.StartListening" /> is called and <see cref="P:StreamJsonRpc.JsonRpc.AllowModificationWhileListening" /> is <see langword="false" />.</exception>
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddLocalRpcMethod(System.Reflection.MethodInfo,System.Object,StreamJsonRpc.JsonRpcMethodAttribute)">
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.AddLocalRpcMethod(System.Reflection.MethodInfo,System.Object,StreamJsonRpc.JsonRpcMethodAttribute,System.Threading.SynchronizationContext)" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.GetJsonRpcMethodAttribute(System.String,System.ReadOnlySpan{System.Reflection.ParameterInfo})">
<inheritdoc cref="M:StreamJsonRpc.Reflection.RpcTargetInfo.GetJsonRpcMethodAttribute(System.String,System.ReadOnlySpan{System.Reflection.ParameterInfo})" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.StartListening">
<summary>
Starts listening to incoming messages.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeAsync(System.String,System.Object)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="argument"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeAsync``1(System.String,System.Object)" path="/param[@name='argument']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeAsync(System.String,System.Object[])">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="arguments"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='arguments']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeAsync``1(System.String,System.Object)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<typeparam name="TResult">Type of the method result.</typeparam>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="argument">A single method argument, must be serializable using the selected <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" />.</param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeAsync``1(System.String,System.Object[])">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<typeparam name="TResult">Type of the method result.</typeparam>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="arguments"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='arguments']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeWithParameterObjectAsync(System.String,System.Object,System.Threading.CancellationToken)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="argument"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeWithParameterObjectAsync``1(System.String,System.Object,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken)" path="/param[@name='argument']" /></param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeWithParameterObjectAsync(System.String,System.Object,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="argument"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeWithParameterObjectAsync``1(System.String,System.Object,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken)" path="/param[@name='argument']" /></param>
<param name="argumentDeclaredTypes"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeWithParameterObjectAsync``1(System.String,System.Object,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken)" path="/param[@name='argumentDeclaredTypes']" /></param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeWithParameterObjectAsync``1(System.String,System.Object,System.Threading.CancellationToken)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<typeparam name="TResult">Type of the method result.</typeparam>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="argument"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeWithParameterObjectAsync``1(System.String,System.Object,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken)" path="/param[@name='argument']" /></param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeWithParameterObjectAsync``1(System.String,System.Object,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<typeparam name="TResult">Type of the method result.</typeparam>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="argument">An object whose properties match the names of parameters on the target method. Must be serializable using the selected <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" />.</param>
<param name="argumentDeclaredTypes">
A dictionary of <see cref="T:System.Type" /> objects that describe how each entry in the <see cref="T:System.Collections.Generic.IReadOnlyDictionary`2" /> provided in <paramref name="argument" /> is expected by the server to be typed.
If specified, this must have exactly the same set of keys as <paramref name="argument" /> and contain no <see langword="null" /> values.
</param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeWithCancellationAsync(System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Threading.CancellationToken)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="arguments"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='arguments']" /></param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeWithCancellationAsync(System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Threading.CancellationToken)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="arguments"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='arguments']" /></param>
<param name="argumentDeclaredTypes"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeWithCancellationAsync``1(System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Threading.CancellationToken)" path="/param[@name='argumentDeclaredTypes']" /></param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeWithCancellationAsync``1(System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Threading.CancellationToken)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<typeparam name="TResult">Type of the method result.</typeparam>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="arguments"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='arguments']" /></param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<returns>A task that completes when the server method executes and returns the result.</returns>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeWithCancellationAsync``1(System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Threading.CancellationToken)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<typeparam name="TResult">Type of the method result.</typeparam>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="arguments"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='arguments']" /></param>
<param name="argumentDeclaredTypes"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='positionalArgumentDeclaredTypes']" /></param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<returns>A task that completes when the server method executes and returns the result.</returns>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.NotifyAsync(System.String,System.Object)">
<summary>
Invokes a given method on a JSON-RPC server without waiting for its response.
</summary>
<remarks>
Any error that happens on the server side is ignored.
</remarks>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="argument">Method argument, must be serializable using the selected <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" />.</param>
<returns>A task that completes when the notify request is sent to the channel to the server.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="targetName" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="targetName" /> is empty.</exception>
<exception cref="T:System.ObjectDisposedException">If this instance of <see cref="T:StreamJsonRpc.JsonRpc" /> has already been disposed prior to this call.</exception>
<exception cref="T:StreamJsonRpc.ConnectionLostException">Thrown when the connection is terminated (by either side) while the request is being transmitted.</exception>
<exception cref="T:System.Exception">
Any exception thrown by the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> (typically due to serialization failures).
When using <see cref="T:StreamJsonRpc.JsonMessageFormatter" /> this should be <see cref="T:Newtonsoft.Json.JsonSerializationException" />.
When using <see cref="T:StreamJsonRpc.MessagePackFormatter" /> this should be <see cref="T:MessagePack.MessagePackSerializationException" />.
</exception>
</member>
<member name="M:StreamJsonRpc.JsonRpc.NotifyAsync(System.String,System.Object[])">
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.NotifyAsync(System.String,System.Object[],System.Collections.Generic.IReadOnlyList{System.Type})" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.NotifyAsync(System.String,System.Object[],System.Collections.Generic.IReadOnlyList{System.Type})">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.NotifyAsync(System.String,System.Object)" path="/summary" /></summary>
<remarks>
Any error that happens on the server side is ignored.
</remarks>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="arguments"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='arguments']" /></param>
<param name="argumentDeclaredTypes"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeWithCancellationAsync``1(System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Threading.CancellationToken)" path="/param[@name='argumentDeclaredTypes']" /></param>
<returns>A task that completes when the notify request is sent to the channel to the server.</returns>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.NotifyAsync(System.String,System.Object)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.NotifyWithParameterObjectAsync(System.String,System.Object)">
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.NotifyWithParameterObjectAsync(System.String,System.Object,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type})" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.NotifyWithParameterObjectAsync(System.String,System.Object,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type})">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.NotifyAsync(System.String,System.Object)" path="/summary" /></summary>
<remarks>
Any error that happens on the server side is ignored.
</remarks>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="argument"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeWithParameterObjectAsync``1(System.String,System.Object,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken)" path="/param[@name='argument']" /></param>
<param name="argumentDeclaredTypes"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='namedArgumentDeclaredTypes']" /></param>
<returns>A task that completes when the notification has been transmitted.</returns>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.NotifyAsync(System.String,System.Object)" path="/exception" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.Dispose">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpc.MarshalWithControlledLifetime``1(``0,StreamJsonRpc.JsonRpcTargetOptions)">
<summary>
Creates a marshallable proxy for a given object that may be sent over RPC such that the receiving side can invoke methods on the given object.
</summary>
<typeparam name="T">
The interface type implemented by the <paramref name="marshaledObject" /> that defines the members to expose over RPC.
</typeparam>
<param name="marshaledObject">The object to be exposed over RPC.</param>
<param name="options"><inheritdoc cref="M:StreamJsonRpc.RpcMarshaledContext`1.#ctor(`0,StreamJsonRpc.JsonRpcTargetOptions)" path="/param[@name='options']" /></param>
<returns>A lifetime controlling wrapper around a new proxy value.</returns>
<remarks>
<para>
Use <see cref="M:StreamJsonRpc.JsonRpc.MarshalLimitedArgument``1(``0)" /> for a simpler lifetime model when the object should only be marshaled within the scope of a single RPC call.
</para>
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpc.MarshalWithControlledLifetime(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions)">
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.MarshalWithControlledLifetime``1(``0,StreamJsonRpc.JsonRpcTargetOptions)" />
<param name="interfaceType"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.MarshalWithControlledLifetime``1(``0,StreamJsonRpc.JsonRpcTargetOptions)" path="/typeparam" /></param>
<param name="marshaledObject"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.MarshalWithControlledLifetime``1(``0,StreamJsonRpc.JsonRpcTargetOptions)" path="/param[@name='marshaledObject']" /></param>
<param name="options"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.MarshalWithControlledLifetime``1(``0,StreamJsonRpc.JsonRpcTargetOptions)" path="/param[@name='options']" /></param>
</member>
<member name="M:StreamJsonRpc.JsonRpc.MarshalLimitedArgument``1(``0)">
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.MarshalWithControlledLifetime``1(``0,StreamJsonRpc.JsonRpcTargetOptions)" />
<returns>A proxy value that may be used within an RPC argument so the RPC server may call back into the <paramref name="marshaledObject" /> object on the RPC client.</returns>
<remarks>
<para>
Use <see cref="M:StreamJsonRpc.JsonRpc.MarshalWithControlledLifetime``1(``0,StreamJsonRpc.JsonRpcTargetOptions)" /> for greater control and flexibility around lifetime of the proxy.
This is required when the value is returned from an RPC method or when it is used within an RPC argument and must outlive that RPC invocation.
</para>
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Attach(System.Type,System.ValueTuple{System.Reflection.TypeInfo,System.Int32}[],StreamJsonRpc.JsonRpcProxyOptions)">
<summary>
Creates a JSON-RPC client proxy that implements a given set of interfaces.
</summary>
<param name="contractInterface">The interface that describes the functions available on the remote end.</param>
<param name="implementedOptionalInterfaces">Additional marshalable interfaces that the client proxy should implement.</param>
<param name="options">A set of customizations for how the client proxy is wired up. If <see langword="null" />, default options will be used.</param>
<returns>An instance of the generated proxy.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddLocalRpcMethod(System.Reflection.MethodInfo,System.Object,StreamJsonRpc.JsonRpcMethodAttribute,System.Threading.SynchronizationContext)">
<inheritdoc cref="M:StreamJsonRpc.Reflection.RpcTargetInfo.AddLocalRpcMethod(System.Reflection.MethodInfo,System.Object,StreamJsonRpc.JsonRpcMethodAttribute,System.Threading.SynchronizationContext)" />
<exception cref="T:System.InvalidOperationException">Thrown if called after <see cref="M:StreamJsonRpc.JsonRpc.StartListening" /> is called and <see cref="P:StreamJsonRpc.JsonRpc.AllowModificationWhileListening" /> is <see langword="false" />.</exception>
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddLocalRpcTargetInternal(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions,System.Boolean)">
<inheritdoc cref="M:StreamJsonRpc.Reflection.RpcTargetInfo.AddLocalRpcTarget(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions,System.Boolean)" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.AddRpcInterfaceToTargetInternal(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions,StreamJsonRpc.Reflection.RpcTargetInfo.RevertAddLocalRpcTarget)">
<summary>
Adds a new RPC interface to an existing target registering additional RPC methods.
</summary>
<param name="exposingMembersOn">The interface type whose members define the RPC accessible members of the <paramref name="target" /> object.</param>
<param name="target">Target to invoke when incoming messages are received.</param>
<param name="options">A set of customizations for how the target object is registered. If <see langword="null" />, default options will be used.</param>
<param name="revertAddLocalRpcTarget">
An optional object that may be disposed of to revert the addition of the target object.
</param>
</member>
<member name="M:StreamJsonRpc.JsonRpc.LoadType(System.String,System.String)">
<summary>
Attempts to load a type based on its full name and possibly assembly name.
</summary>
<param name="typeFullName">The <see cref="P:System.Type.FullName" /> of the type to be loaded.</param>
<param name="assemblyName">The assemble name that is expected to define the type, if available. This should be parseable by <see cref="M:System.Reflection.AssemblyName.#ctor(System.String)" />.</param>
<returns>The loaded <see cref="T:System.Type" />, if one could be found; otherwise <see langword="null" />.</returns>
<remarks>
<para>
This method is used to load types that are strongly referenced by incoming messages during serialization.
It is important to not load types that may pose a security threat based on the type and the trust level of the remote party.
</para>
<para>
The default implementation of this method loads any type named if it can be found based on its assembly name (if provided) or based on any assembly already loaded in the AppDomain otherwise.
</para>
<para>Implementations should avoid throwing <see cref="T:System.IO.FileLoadException" />, <see cref="T:System.TypeLoadException" /> or other exceptions, preferring to return <see langword="null" /> instead.</para>
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpc.Dispose(System.Boolean)">
<summary>
Disposes managed and native resources held by this instance.
</summary>
<param name="disposing"><see langword="true" /> if being disposed; <see langword="false" /> if being finalized.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpc.IsFatalException(System.Exception)">
<summary>
Indicates whether the connection should be closed when the server throws an exception.
</summary>
<param name="ex">The <see cref="T:System.Exception" /> thrown from server that is potentially fatal.</param>
<returns>A <see cref="T:System.Boolean" /> indicating if the streams should be closed.</returns>
<remarks>
This method is invoked within the context of an exception filter or when a task fails to complete and simply returns false by default.
If the process should crash on an exception,
calling <see cref="M:System.Environment.FailFast(System.String,System.Exception)" /> will produce such behavior.
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpc.CreateErrorDetails(StreamJsonRpc.Protocol.JsonRpcRequest,System.Exception)">
<summary>
Creates the <see cref="T:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail" /> to be used as the value for the error property to be sent back to the client in response to an exception being thrown from an RPC method invoked locally.
</summary>
<param name="request">The request that led to the invocation that ended up failing.</param>
<param name="exception">The exception thrown from the RPC method.</param>
<returns>The error details to return to the client. Must not be <see langword="null" />.</returns>
<remarks>
This method may be overridden in a derived class to change the way error details are expressed.
</remarks>
<seealso cref="M:StreamJsonRpc.JsonRpc.CreateExceptionFromRpcError(StreamJsonRpc.Protocol.JsonRpcRequest,StreamJsonRpc.Protocol.JsonRpcError)" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.CreateExceptionFromRpcError(StreamJsonRpc.Protocol.JsonRpcRequest,StreamJsonRpc.Protocol.JsonRpcError)">
<summary>
Creates a <see cref="T:StreamJsonRpc.RemoteRpcException" /> (or derived type) that represents the data found in a JSON-RPC error response.
This is called on the client side to produce the exception that will be thrown back to the RPC client.
</summary>
<param name="request">The JSON-RPC request that produced this error.</param>
<param name="response">The JSON-RPC error response.</param>
<returns>An instance of <see cref="T:StreamJsonRpc.RemoteRpcException" />.</returns>
<seealso cref="M:StreamJsonRpc.JsonRpc.CreateErrorDetails(StreamJsonRpc.Protocol.JsonRpcRequest,System.Exception)" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.GetErrorDetailsDataType(StreamJsonRpc.Protocol.JsonRpcError)">
<summary>
Determines the type that the <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data" /> object should be deserialized to
for an incoming <see cref="T:StreamJsonRpc.Protocol.JsonRpcError" /> message.
</summary>
<param name="error">The received error message.</param>
<returns>
The type, or <see langword="null" /> if the type is unknown.
</returns>
<remarks>
The default implementation matches what <see cref="M:StreamJsonRpc.JsonRpc.CreateErrorDetails(StreamJsonRpc.Protocol.JsonRpcRequest,System.Exception)" /> does
by assuming that the <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data" /> object should be deserialized as an instance of <see cref="T:StreamJsonRpc.Protocol.CommonErrorData" />.
However derived types can override this method and use <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Code" /> or other means to determine the appropriate type.
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(System.Nullable{System.Int64},System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Threading.CancellationToken)">
<summary>
Invokes the specified RPC method.
</summary>
<typeparam name="TResult">RPC method return type.</typeparam>
<param name="id">An identifier established by the Client that MUST contain a String, Number, or NULL value if included.
If it is not included it is assumed to be a notification.</param>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="arguments"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='arguments']" /></param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Threading.CancellationToken)">
<summary>
Invokes the specified RPC method.
</summary>
<typeparam name="TResult">RPC method return type.</typeparam>
<param name="id">An identifier established by the Client that MUST contain a String, Number, or NULL value if included.
If it is not included it is assumed to be a notification.</param>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="arguments"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='arguments']" /></param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(System.Nullable{System.Int64},System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Threading.CancellationToken,System.Boolean)">
<summary><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/summary" /></summary>
<typeparam name="TResult">RPC method return type.</typeparam>
<param name="id">An identifier established by the Client. If the default value is given, it is assumed to be a notification.</param>
<param name="targetName"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='targetName']" /></param>
<param name="arguments"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='arguments']" /></param>
<param name="cancellationToken"><inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/param[@name='cancellationToken']" /></param>
<param name="isParameterObject">Value which indicates if parameter should be passed as an object.</param>
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" path="/returns" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Threading.CancellationToken,System.Boolean)">
<inheritdoc cref="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)" />
</member>
<member name="M:StreamJsonRpc.JsonRpc.InvokeCoreAsync``1(StreamJsonRpc.RequestId,System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Collections.Generic.IReadOnlyDictionary{System.String,System.Type},System.Threading.CancellationToken,System.Boolean)">
<summary>
Invokes a given method on a JSON-RPC server.
</summary>
<typeparam name="TResult">RPC method return type.</typeparam>
<param name="id">An identifier established by the Client. If the default value is given, it is assumed to be a notification.</param>
<param name="targetName">Name of the method to invoke. Must not be null or empty.</param>
<param name="arguments">Arguments to pass to the invoked method. They must be serializable using the selected <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" />. If <see langword="null" />, no arguments are passed.</param>
<param name="positionalArgumentDeclaredTypes">
A list of <see cref="T:System.Type" /> objects that describe how each element in <paramref name="arguments" /> is expected by the server to be typed.
If specified, this must have exactly the same length as <paramref name="arguments" /> and contain no <see langword="null" /> elements.
This value is ignored when <paramref name="isParameterObject" /> is true.
</param>
<param name="namedArgumentDeclaredTypes">
A dictionary of <see cref="T:System.Type" /> objects that describe how each entry in the <see cref="T:System.Collections.Generic.IReadOnlyDictionary`2" /> provided in the only element of <paramref name="arguments" /> is expected by the server to be typed.
If specified, this must have exactly the same set of keys as the dictionary contained in the first element of <paramref name="arguments" />, and contain no <see langword="null" /> values.
</param>
<param name="cancellationToken">The token whose cancellation should signal the server to stop processing this request.</param>
<param name="isParameterObject">Value which indicates if parameter should be passed as an object.</param>
<returns>A task that completes with the response from the JSON-RPC server.</returns>
<exception cref="T:System.OperationCanceledException">
Thrown after <paramref name="cancellationToken" /> is canceled.
If the request has already been transmitted, the exception is only thrown after the server has received the cancellation notification and responded to it.
If the server completes the request instead of cancelling, this exception will not be thrown.
When the connection drops before receiving a response, this exception is thrown if <paramref name="cancellationToken" /> has been canceled.
</exception>
<exception cref="T:StreamJsonRpc.RemoteRpcException">
A common base class for a variety of RPC exceptions that may be thrown. Some common derived types are listed individually.
</exception>
<exception cref="T:StreamJsonRpc.RemoteInvocationException">
Thrown when an error is returned from the server in consequence of executing the requested method.
</exception>
<exception cref="T:StreamJsonRpc.RemoteMethodNotFoundException">
Thrown when the server reports that no matching method was found to invoke.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="targetName" /> is null.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="targetName" /> is empty.</exception>
<exception cref="T:System.ObjectDisposedException">If this instance of <see cref="T:StreamJsonRpc.JsonRpc" /> has already been disposed prior to this call.</exception>
<exception cref="T:StreamJsonRpc.ConnectionLostException">
Thrown when the connection is terminated (by either side) before the request or while the request is in progress,
unless <paramref name="cancellationToken" /> is already signaled.
</exception>
<exception cref="T:System.Exception">
Any exception thrown by the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> (typically due to serialization failures).
When using <see cref="T:StreamJsonRpc.JsonMessageFormatter" /> this should be <see cref="T:Newtonsoft.Json.JsonSerializationException" />.
When using <see cref="T:StreamJsonRpc.MessagePackFormatter" /> this should be <see cref="T:MessagePack.MessagePackSerializationException" />.
</exception>
</member>
<member name="M:StreamJsonRpc.JsonRpc.CreateNewRequestId">
<summary>
Creates a unique <see cref="T:StreamJsonRpc.RequestId" /> for an outbound request.
</summary>
<returns>The unique <see cref="T:StreamJsonRpc.RequestId" />.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.OnRequestTransmissionAborted(StreamJsonRpc.Protocol.JsonRpcRequest)">
<summary>
Raises the <see cref="E:StreamJsonRpc.Reflection.IJsonRpcFormatterCallbacks.RequestTransmissionAborted" /> event.
</summary>
<param name="request">The request whose transmission could not be completed.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpc.OnResponseReceived(StreamJsonRpc.Protocol.JsonRpcMessage)">
<summary>
Raises the <see cref="E:StreamJsonRpc.Reflection.IJsonRpcFormatterCallbacks.ResponseReceived" /> event.
</summary>
<param name="response">The result or error that was received.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpc.OnResponseSent(StreamJsonRpc.Protocol.JsonRpcMessage)">
<summary>
Raises the <see cref="E:StreamJsonRpc.Reflection.IJsonRpcFormatterCallbacks.ResponseSent" /> event.
</summary>
<param name="response">The result or error that was sent.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpc.DispatchRequestAsync(StreamJsonRpc.Protocol.JsonRpcRequest,StreamJsonRpc.TargetMethod,System.Threading.CancellationToken)">
<summary>
Invokes the method on the local RPC target object and converts the response into a JSON-RPC result message.
</summary>
<param name="request">The incoming JSON-RPC request that resulted in the <paramref name="targetMethod" /> being selected to receive the dispatch.</param>
<param name="targetMethod">The method to be invoked and the arguments to pass to it.</param>
<param name="cancellationToken">A cancellation token to pass to <see cref="M:StreamJsonRpc.TargetMethod.InvokeAsync(System.Threading.CancellationToken)" />.</param>
<returns>
The JSON-RPC response message to send back to the client.
This is never expected to be null. If the protocol indicates no response message is expected by the client, it will be dropped rather than transmitted.
</returns>
<remarks>
Overrides of this method are expected to call this base method for core functionality.
Overrides should call the base method before any yielding await in order to maintain consistent message ordering
unless the goal of the override is specifically to alter ordering of incoming messages.
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpc.SendAsync(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)">
<summary>
Sends the JSON-RPC message to <see cref="T:StreamJsonRpc.IJsonRpcMessageHandler" /> intance to be transmitted.
</summary>
<param name="message">The message to send.</param>
<param name="cancellationToken">A token to cancel the send request.</param>
<returns>A task that represents the asynchronous operation.</returns>
<remarks>
Overrides of this method are expected to call this base method for core functionality.
Overrides should call the base method before any yielding await in order to maintain consistent message ordering
unless the goal of the override is specifically to alter ordering of outgoing messages.
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpc.TryGetTaskOfTOrValueTaskOfTType(System.Reflection.TypeInfo,System.Reflection.TypeInfo@)">
<summary>
Extracts the literal <see cref="T:System.Threading.Tasks.Task`1" /> type from the type hierarchy of a given type.
</summary>
<param name="taskTypeInfo">The original type of the value returned from an RPC-invoked method.</param>
<param name="taskOfTTypeInfo">Receives the <see cref="T:System.Threading.Tasks.Task`1" /> type that is a base type of <paramref name="taskTypeInfo" />, if found.</param>
<returns><see langword="true" /> if <see cref="T:System.Threading.Tasks.Task`1" /> could be found in the type hierarchy; otherwise <see langword="false" />.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.TryGetTaskFromValueTask(System.Object,System.Threading.Tasks.Task@)">
<summary>
Convert a <see cref="T:System.Threading.Tasks.ValueTask" /> or <see cref="T:System.Threading.Tasks.ValueTask`1" /> into a <see cref="T:System.Threading.Tasks.Task" /> if possible.
</summary>
<param name="result">The result from the RPC method invocation.</param>
<param name="task">Receives the converted <see cref="T:System.Threading.Tasks.Task" /> object, if conversion was possible; otherwise <see langword="null" />.</param>
<returns><see langword="true" /> if conversion succeeded; <see langword="false" /> otherwise.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.ProcessResultBeforeSerializingAsync(System.Object,System.Threading.CancellationToken)">
<summary>
Perform any special processing on the result of an RPC method before serializing it for transmission to the RPC client.
</summary>
<param name="result">The result from the RPC method.</param>
<param name="cancellationToken">A cancellation token.</param>
<returns>A task that completes when processing the result is complete. The returned Task *may* transition to a <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpc.CancelPendingOutboundRequest(System.Object)">
<summary>
Cancels an individual outbound pending request.
</summary>
<param name="state">The <see cref="T:StreamJsonRpc.RequestId" /> associated with the request to be canceled.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpc.ThrowIfConfigurationLocked">
<summary>
Throws an exception if we have already started listening,
unless <see cref="P:StreamJsonRpc.JsonRpc.AllowModificationWhileListening" /> is <see langword="true" />.
</summary>
<exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:StreamJsonRpc.JsonRpc.HasListeningStarted" /> is <see langword="true" /> and <see cref="P:StreamJsonRpc.JsonRpc.AllowModificationWhileListening" /> is <see langword="false" />.</exception>
</member>
<member name="T:StreamJsonRpc.JsonRpcEnumerableSettings">
<summary>
Provides customizations on performance characteristics of an <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> that is passed over JSON-RPC.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEnumerableSettings.DefaultSettings">
<summary>
A shared instance with the default settings to use.
</summary>
<devremarks>
This is internal because the type is mutable and thus cannot be safely shared.
</devremarks>
</member>
<member name="F:StreamJsonRpc.JsonRpcEnumerableSettings.minBatchSize">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpcEnumerableSettings.MinBatchSize" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEnumerableSettings.maxReadAhead">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpcEnumerableSettings.MaxReadAhead" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEnumerableSettings.prefetch">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpcEnumerableSettings.Prefetch" /> property.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpcEnumerableSettings.MaxReadAhead">
<summary>
Gets or sets the maximum number of elements to read ahead and cache from the generator in anticipation of the consumer requesting those values.
</summary>
<value>This value must be a non-negative number.</value>
</member>
<member name="P:StreamJsonRpc.JsonRpcEnumerableSettings.MinBatchSize">
<summary>
Gets or sets the minimum number of elements to obtain from the generator before sending a batch of values to the consumer.
</summary>
<value>This must be a positive integer.</value>
</member>
<member name="P:StreamJsonRpc.JsonRpcEnumerableSettings.Prefetch">
<summary>
Gets or sets the number of elements that should be precomputed and provided in the initial JSON-RPC message
so the receiving party does not neet to request the initial few elements.
</summary>
<remarks>
<para>This should only be used for <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> objects returned directly from an RPC method.</para>
<para>To prefetch items for <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> objects used as arguments to an RPC method
or within an object graph of a returned value, use the <see cref="M:StreamJsonRpc.JsonRpcExtensions.WithPrefetchAsync``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Int32,System.Threading.CancellationToken)" /> extension method
instead and leave this value at 0.</para>
</remarks>
</member>
<member name="T:StreamJsonRpc.JsonRpcEventSource">
<summary>
The ETW source for logging events for this library.
</summary>
<remarks>
We use a fully-descriptive type name because the type name becomes the name
of the ETW Provider.
</remarks>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.Instance">
<summary>
The singleton instance of this event source.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.SendingNotificationEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.SendingNotification(System.String,System.String)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.SendingRequestEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.SendingRequest(System.Int64,System.String,System.String)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.SendingCancellationRequestEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.SendingCancellationRequest(System.Int64)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.ReceivedResultEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.ReceivedResult(System.Int64)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.ReceivedErrorEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.ReceivedError(System.Int64,StreamJsonRpc.Protocol.JsonRpcErrorCode)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.ReceivedNoResponseEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.ReceivedNoResponse(System.Int64)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.ReceivedNotificationEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.ReceivedNotification(System.String,System.String)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.ReceivedRequestEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.ReceivedRequest(System.Int64,System.String,System.String)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.ReceivedCancellationRequestEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.ReceivedCancellationRequest(System.Int64)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.SendingResultEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.SendingResult(System.Int64)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.SendingErrorEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.SendingError(System.Int64,StreamJsonRpc.Protocol.JsonRpcErrorCode)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.TransmissionQueuedEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.TransmissionQueued" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.TransmissionCompletedEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.TransmissionCompleted" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.MessageHandlerTransmittedEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.HandlerTransmitted(System.Int64)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.MessageHandlerReceivedEvent">
<summary>
The event ID for the <see cref="M:StreamJsonRpc.JsonRpcEventSource.HandlerReceived(System.Int64)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcEventSource.AlwaysOn">
<summary>
A flag indicating whether to force tracing to be on.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcEventSource" /> class.
</summary>
<remarks>
ETW wants to see no more than one instance of this class.
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.IsEnabled(System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords)">
<inheritdoc cref="M:System.Diagnostics.Tracing.EventSource.IsEnabled(System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords)" />
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.SendingNotification(System.String,System.String)">
<summary>
Signals the transmission of a notification.
</summary>
<param name="method">The name of the method.</param>
<param name="args">A snippet representing the arguments.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.SendingRequest(System.Int64,System.String,System.String)">
<summary>
Signals the transmission of a request.
</summary>
<param name="requestId">The id of the request, if any.</param>
<param name="method">The name of the method.</param>
<param name="args">A snippet representing the arguments.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.ReceivedResult(System.Int64)">
<summary>
Signals the receipt of a successful response.
</summary>
<param name="requestId">The ID of the request being responded to.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.ReceivedError(System.Int64,StreamJsonRpc.Protocol.JsonRpcErrorCode)">
<summary>
Signals the receipt of a response.
</summary>
<param name="requestId">The ID of the request being responded to.</param>
<param name="errorCode">The <see cref="T:StreamJsonRpc.Protocol.JsonRpcErrorCode" /> on the error response.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.ReceivedNoResponse(System.Int64)">
<summary>
Signals that the connection dropped before a response to a request was received.
</summary>
<param name="requestId">The ID of the request that did not receive a response.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.SendingCancellationRequest(System.Int64)">
<summary>
Signals that a previously transmitted request is being canceled.
</summary>
<param name="requestId">The ID of the request being canceled.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.ReceivedNotification(System.String,System.String)">
<summary>
Signals the receipt of a notification.
</summary>
<param name="method">The name of the method.</param>
<param name="args">A snippet representing the arguments.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.ReceivedRequest(System.Int64,System.String,System.String)">
<summary>
Signals the receipt of a request.
</summary>
<param name="requestId">The id of the request, if any.</param>
<param name="method">The name of the method.</param>
<param name="args">A snippet representing the arguments.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.SendingResult(System.Int64)">
<summary>
Signals the transmission of a successful response.
</summary>
<param name="requestId">The ID of the request being responded to.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.SendingError(System.Int64,StreamJsonRpc.Protocol.JsonRpcErrorCode)">
<summary>
Signals the receipt of a response.
</summary>
<param name="requestId">The ID of the request being responded to.</param>
<param name="errorCode">The <see cref="T:StreamJsonRpc.Protocol.JsonRpcErrorCode" /> on the error response.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.ReceivedCancellationRequest(System.Int64)">
<summary>
Signals that a previously transmitted request is being canceled.
</summary>
<param name="requestId">The ID of the request being canceled.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.TransmissionQueued">
<summary>
Signals that a message has been queued for transmission.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.TransmissionCompleted">
<summary>
Signals that a message has been transmitted.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.HandlerTransmitted(System.Int64)">
<summary>
Signal that an <see cref="T:StreamJsonRpc.IJsonRpcMessageHandler" /> has transmitted a message.
</summary>
<param name="size">Size of the payload.</param>.
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.HandlerReceived(System.Int64)">
<summary>
Signal that an <see cref="T:StreamJsonRpc.IJsonRpcMessageHandler" /> has received a message.
</summary>
<param name="size">Size of the payload.</param>.
</member>
<member name="M:StreamJsonRpc.JsonRpcEventSource.GetArgumentsString(StreamJsonRpc.Protocol.JsonRpcRequest)">
<summary>
Creates a string representation of arguments of max 200 characters for logging.
</summary>
<param name="request">The request whose arguments are to be logged.</param>
<returns>String representation of first argument only.</returns>
</member>
<member name="T:StreamJsonRpc.JsonRpcEventSource.Tasks">
<summary>
Names of constants in this class make up the middle term in the event name
E.g.: StreamJsonRpc/InvokeMethod/Start.
</summary>
<remarks>Name of this class is important for EventSource.</remarks>
</member>
<member name="T:StreamJsonRpc.JsonRpcEventSource.Tags">
<summary>
Names of constants in this class make up the middle term in the event name
E.g.: StreamJsonRpc/InvokeMethod/Start.
</summary>
<remarks>Name of this class is important for EventSource.</remarks>
</member>
<member name="T:StreamJsonRpc.JsonRpcExtensions">
<summary>
Extension methods for use with <see cref="T:StreamJsonRpc.JsonRpc" />.
</summary>
</member>
<member name="T:StreamJsonRpc.JsonRpcExtensions.IRpcEnumerable">
<summary>
A non-generic interface implemented by <see cref="T:StreamJsonRpc.JsonRpcExtensions.RpcEnumerable`1" />
so that non-generic callers can initiate a prefetch if necessary.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpcExtensions.WithJsonRpcSettings``1(System.Collections.Generic.IAsyncEnumerable{``0},StreamJsonRpc.JsonRpcEnumerableSettings)">
<summary>
Decorates an <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> with settings that customize how StreamJsonRpc will send its items to the remote party.
</summary>
<typeparam name="T">The type of element enumerated by the sequence.</typeparam>
<param name="enumerable">The enumerable to be decorated.</param>
<param name="settings">The settings to associate with this enumerable.</param>
<returns>The decorated enumerable instance.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpcExtensions.AsAsyncEnumerable``1(System.Collections.Generic.IEnumerable{``0})">
<inheritdoc cref="M:StreamJsonRpc.JsonRpcExtensions.AsAsyncEnumerable``1(System.Collections.Generic.IEnumerable{``0},System.Threading.CancellationToken)" />
</member>
<member name="M:StreamJsonRpc.JsonRpcExtensions.AsAsyncEnumerable``1(System.Collections.Generic.IEnumerable{``0},System.Threading.CancellationToken)">
<summary>
Converts an <see cref="T:System.Collections.Generic.IEnumerable`1" /> to <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> so it will be streamed over an RPC connection progressively
instead of as an entire collection in one message.
</summary>
<typeparam name="T">The type of element enumerated by the sequence.</typeparam>
<param name="enumerable">The enumerable to be converted.</param>
<param name="cancellationToken">A cancellation token.</param>
<returns>The async enumerable instance.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpcExtensions.AsAsyncEnumerable``1(System.Collections.Generic.IEnumerable{``0},StreamJsonRpc.JsonRpcEnumerableSettings)">
<inheritdoc cref="M:StreamJsonRpc.JsonRpcExtensions.AsAsyncEnumerable``1(System.Collections.Generic.IEnumerable{``0},StreamJsonRpc.JsonRpcEnumerableSettings,System.Threading.CancellationToken)" />
</member>
<member name="M:StreamJsonRpc.JsonRpcExtensions.AsAsyncEnumerable``1(System.Collections.Generic.IEnumerable{``0},StreamJsonRpc.JsonRpcEnumerableSettings,System.Threading.CancellationToken)">
<summary>
Converts an <see cref="T:System.Collections.Generic.IEnumerable`1" /> to <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> so it will be streamed over an RPC connection progressively
instead of as an entire collection in one message.
</summary>
<typeparam name="T">The type of element enumerated by the sequence.</typeparam>
<param name="enumerable">The enumerable to be converted.</param>
<param name="settings">The settings to associate with this enumerable.</param>
<param name="cancellationToken">A cancellation token.</param>
<returns>The async enumerable instance.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpcExtensions.WithPrefetchAsync``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Int32,System.Threading.CancellationToken)">
<summary>
Preloads an <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> with a cache of pre-enumerated items for inclusion in the initial transmission
of the enumerable over an RPC channel.
</summary>
<typeparam name="T">The type of item in the collection.</typeparam>
<param name="enumerable">The sequence to pre-fetch items from.</param>
<param name="count">The number of items to pre-fetch. If this value is larger than the number of elements in the enumerable, all values will be pre-fetched.</param>
<param name="cancellationToken">A cancellation token.</param>
<returns>A decorated <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> object that is specially prepared for processing by JSON-RPC with the preloaded values.</returns>
</member>
<member name="M:StreamJsonRpc.JsonRpcExtensions.GetJsonRpcSettings``1(System.Collections.Generic.IAsyncEnumerable{``0})">
<summary>
Extracts the <see cref="T:StreamJsonRpc.JsonRpcEnumerableSettings" /> from an <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />
that may have been previously returned from <see cref="M:StreamJsonRpc.JsonRpcExtensions.WithJsonRpcSettings``1(System.Collections.Generic.IAsyncEnumerable{``0},StreamJsonRpc.JsonRpcEnumerableSettings)" />.
</summary>
<typeparam name="T">The type of element enumerated by the sequence.</typeparam>
<param name="enumerable">The enumerable, which may have come from <see cref="M:StreamJsonRpc.JsonRpcExtensions.WithJsonRpcSettings``1(System.Collections.Generic.IAsyncEnumerable{``0},StreamJsonRpc.JsonRpcEnumerableSettings)" />.</param>
<returns>The settings to use.</returns>
<remarks>
If the <paramref name="enumerable" /> did not come from <see cref="M:StreamJsonRpc.JsonRpcExtensions.WithJsonRpcSettings``1(System.Collections.Generic.IAsyncEnumerable{``0},StreamJsonRpc.JsonRpcEnumerableSettings)" />,
the default settings will be returned.
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpcExtensions.PrefetchIfApplicableAsync(System.Object,System.Threading.CancellationToken)">
<summary>
Executes the pre-fetch of values for an <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> object if
prefetch is set with the <see cref="P:StreamJsonRpc.JsonRpcEnumerableSettings.Prefetch" /> property.
</summary>
<param name="possibleEnumerable">An object which might represent an <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />.</param>
<param name="cancellationToken">A token to cancel prefetching.</param>
<returns>A task that tracks completion of the prefetch operation.</returns>
</member>
<member name="T:StreamJsonRpc.JsonRpcProxyOptions">
<summary>
Options that may customize how a dynamically generated client proxy object calls into a <see cref="T:StreamJsonRpc.JsonRpc" /> instance.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcProxyOptions.methodNameTransform">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpcProxyOptions.MethodNameTransform" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.JsonRpcProxyOptions.eventNameTransform">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.JsonRpcProxyOptions.EventNameTransform" /> property.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpcProxyOptions.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcProxyOptions" /> class.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpcProxyOptions.#ctor(StreamJsonRpc.JsonRpcProxyOptions)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcProxyOptions" /> class
with properties initialized from another instance.
</summary>
<param name="copyFrom">The options to copy values from.</param>
</member>
<member name="P:StreamJsonRpc.JsonRpcProxyOptions.MethodNameTransform">
<summary>
Gets or sets a function that takes the CLR method name and returns the RPC method name.
This method is useful for adding prefixes to all methods, or making them camelCased.
</summary>
<value>A function, defaulting to a straight pass-through. Never null.</value>
<exception cref="T:System.ArgumentNullException">Thrown if set to a null value.</exception>
</member>
<member name="P:StreamJsonRpc.JsonRpcProxyOptions.EventNameTransform">
<summary>
Gets or sets a function that takes the CLR event name and returns the RPC event name used in notifications.
This method is useful for adding prefixes to all events, or making them camelCased.
</summary>
<value>A function, defaulting to a straight pass-through. Never null.</value>
<exception cref="T:System.ArgumentNullException">Thrown if set to a null value.</exception>
</member>
<member name="P:StreamJsonRpc.JsonRpcProxyOptions.ServerRequiresNamedArguments">
<summary>
Gets or sets a value indicating whether the client proxy will pass named arguments (i.e. an args object)
instead of the default positional arguments (i.e. an args array).
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpcProxyOptions.Default">
<summary>
Gets an instance with default properties.
</summary>
<remarks>
Callers should *not* mutate properties on this instance since it is shared.
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpcProxyOptions.OnDispose">
<summary>
Gets or sets a delegate to invoke when this proxy is disposed.
</summary>
<remarks>
When set, the proxy will *not* automatically dispose of the owning <see cref="T:StreamJsonRpc.JsonRpc" /> instance.
This delegate *may* be called concurrently or more than once if the proxy owner calls <see cref="M:System.IDisposable.Dispose" /> concurrently.
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpcProxyOptions.OnProxyConstructed">
<summary>
Gets or sets a callback that is invoked whenever a proxy is constructed.
</summary>
</member>
<member name="T:StreamJsonRpc.JsonRpcTargetOptions">
<summary>
Options that may customize how a target object is added to a <see cref="T:StreamJsonRpc.JsonRpc" /> instance.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpcTargetOptions.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcTargetOptions" /> class.
</summary>
</member>
<member name="M:StreamJsonRpc.JsonRpcTargetOptions.#ctor(StreamJsonRpc.JsonRpcTargetOptions)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcTargetOptions" /> class.
</summary>
<param name="copyFrom">An instance to copy all property values from.</param>
</member>
<member name="P:StreamJsonRpc.JsonRpcTargetOptions.MethodNameTransform">
<summary>
Gets or sets a function that takes the CLR method name and returns the RPC method name.
This method is useful for adding prefixes to all methods, or making them camelCased.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpcTargetOptions.EventNameTransform">
<summary>
Gets or sets a function that takes the CLR event name and returns the RPC event name used in notification messages.
This method is useful for adding prefixes to all events, or making them camelCased.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpcTargetOptions.NotifyClientOfEvents">
<summary>
Gets or sets a value indicating whether events raised on the target object
should be relayed to the client via a JSON-RPC notify message.
</summary>
<value>The default is <see langword="true" />.</value>
</member>
<member name="P:StreamJsonRpc.JsonRpcTargetOptions.AllowNonPublicInvocation">
<summary>
Gets or sets a value indicating whether non-public methods/events on target objects can be invoked
by remote clients.
</summary>
<value>The default value is <see langword="false" />.</value>
<remarks>
The default for this property was <see langword="true" /> in the 1.x versions.
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpcTargetOptions.UseSingleObjectParameterDeserialization">
<inheritdoc cref="P:StreamJsonRpc.JsonRpcMethodAttribute.UseSingleObjectParameterDeserialization" />
<remarks>
This value serves as a default for <see cref="P:StreamJsonRpc.JsonRpcMethodAttribute.UseSingleObjectParameterDeserialization" /> for members that have no <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> applied.
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpcTargetOptions.ClientRequiresNamedArguments">
<inheritdoc cref="P:StreamJsonRpc.JsonRpcMethodAttribute.ClientRequiresNamedArguments" />
<remarks>
This value serves as a default for <see cref="P:StreamJsonRpc.JsonRpcMethodAttribute.ClientRequiresNamedArguments" /> for members that have no <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> applied.
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpcTargetOptions.DisposeOnDisconnect">
<summary>
Gets or sets a value indicating whether to dispose of the target object
when the connection with the remote party is lost.
</summary>
<remarks>
<para>
The target object may implement <see cref="T:System.IAsyncDisposable" />,
<see cref="T:Microsoft.VisualStudio.Threading.IAsyncDisposable" /> or <see cref="T:System.IDisposable" />.
The first implemented interface from this list is the one whose dispose method will be invoked.
</para>
<para>
Exceptions thrown from the dispose method will be aggregated into <see cref="P:StreamJsonRpc.JsonRpc.Completion" />.
</para>
</remarks>
</member>
<member name="P:StreamJsonRpc.JsonRpcTargetOptions.Default">
<summary>
Gets an instance with default properties.
</summary>
<remarks>
Callers should *not* mutate properties on this instance since it is shared.
</remarks>
</member>
<member name="T:StreamJsonRpc.LengthHeaderMessageHandler">
<summary>
A minimal header for each message that simply declares content length.
</summary>
<remarks>
The length is expressed as a big endian, 4 byte integer.
</remarks>
</member>
<member name="F:StreamJsonRpc.LengthHeaderMessageHandler.formatter">
<summary>
The formatter to use for message serialization.
</summary>
</member>
<member name="F:StreamJsonRpc.LengthHeaderMessageHandler.contentSequenceBuilder">
<summary>
The <see cref="T:System.Buffers.IBufferWriter`1" /> sent to the <see cref="F:StreamJsonRpc.LengthHeaderMessageHandler.formatter" /> to write the message.
</summary>
</member>
<member name="M:StreamJsonRpc.LengthHeaderMessageHandler.#ctor(System.IO.Pipelines.IDuplexPipe,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.LengthHeaderMessageHandler" /> class.
</summary>
<param name="pipe">The reader and writer to use for receiving/transmitting messages.</param>
<param name="formatter">The formatter to use for message serialization.</param>
</member>
<member name="M:StreamJsonRpc.LengthHeaderMessageHandler.#ctor(System.IO.Pipelines.PipeWriter,System.IO.Pipelines.PipeReader,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.LengthHeaderMessageHandler" /> class.
</summary>
<param name="writer">The writer to use for transmitting messages.</param>
<param name="reader">The reader to use for receiving messages.</param>
<param name="formatter">The formatter to use for message serialization.</param>
</member>
<member name="M:StreamJsonRpc.LengthHeaderMessageHandler.#ctor(System.IO.Stream,System.IO.Stream,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.LengthHeaderMessageHandler" /> class.
</summary>
<param name="sendingStream">The stream to use for transmitting messages.</param>
<param name="receivingStream">The stream to use for receiving messages.</param>
<param name="formatter">The formatter to use to serialize <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> instances.</param>
</member>
<member name="M:StreamJsonRpc.LengthHeaderMessageHandler.ReadCoreAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.LengthHeaderMessageHandler.Write(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.MessageHandlerBase">
<summary>
An abstract base class for for sending and receiving messages.
</summary>
<remarks>
This class and its derivatives are safe to call from any thread.
Calls to <see cref="M:StreamJsonRpc.MessageHandlerBase.WriteAsync(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)" />
are protected by a semaphore to guarantee message integrity
and may be made from any thread.
The caller must take care to call <see cref="M:StreamJsonRpc.MessageHandlerBase.ReadAsync(System.Threading.CancellationToken)" /> sequentially.
</remarks>
</member>
<member name="F:StreamJsonRpc.MessageHandlerBase.disposalTokenSource">
<summary>
The source of a token that is canceled when this instance is disposed.
</summary>
</member>
<member name="F:StreamJsonRpc.MessageHandlerBase.sendingSemaphore">
<summary>
A semaphore acquired while sending a message.
</summary>
</member>
<member name="F:StreamJsonRpc.MessageHandlerBase.syncObject">
<summary>
The sync object to lock when inspecting and mutating the <see cref="F:StreamJsonRpc.MessageHandlerBase.state" /> field.
</summary>
</member>
<member name="F:StreamJsonRpc.MessageHandlerBase.readingCompleted">
<summary>
A signal that the last read operation has completed.
</summary>
</member>
<member name="F:StreamJsonRpc.MessageHandlerBase.writingCompleted">
<summary>
A signal that the last write operation has completed.
</summary>
</member>
<member name="F:StreamJsonRpc.MessageHandlerBase.state">
<summary>
A value indicating whether the <see cref="M:StreamJsonRpc.MessageHandlerBase.ReadAsync(System.Threading.CancellationToken)" /> and/or <see cref="M:StreamJsonRpc.MessageHandlerBase.WriteAsync(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)" /> methods are in progress.
</summary>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.#ctor(StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.MessageHandlerBase" /> class.
</summary>
<param name="formatter">The formatter used to serialize messages.</param>
</member>
<member name="F:StreamJsonRpc.MessageHandlerBase.MessageHandlerState.None">
<summary>
No flags.
</summary>
</member>
<member name="F:StreamJsonRpc.MessageHandlerBase.MessageHandlerState.Writing">
<summary>
Indicates that the <see cref="M:StreamJsonRpc.MessageHandlerBase.WriteAsync(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)" /> method is in running.
</summary>
</member>
<member name="F:StreamJsonRpc.MessageHandlerBase.MessageHandlerState.Reading">
<summary>
Indicates that the <see cref="M:StreamJsonRpc.MessageHandlerBase.ReadAsync(System.Threading.CancellationToken)" /> method is in running.
</summary>
</member>
<member name="P:StreamJsonRpc.MessageHandlerBase.CanRead">
<summary>
Gets a value indicating whether this message handler can receive messages.
</summary>
</member>
<member name="P:StreamJsonRpc.MessageHandlerBase.CanWrite">
<summary>
Gets a value indicating whether this message handler can send messages.
</summary>
</member>
<member name="P:StreamJsonRpc.MessageHandlerBase.Formatter">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.MessageHandlerBase.Microsoft#IDisposableObservable#IsDisposed">
<summary>
Gets a value indicating whether this instance has been disposed.
</summary>
</member>
<member name="P:StreamJsonRpc.MessageHandlerBase.DisposalToken">
<summary>
Gets a token that is canceled when this instance is disposed.
</summary>
</member>
<member name="P:StreamJsonRpc.MessageHandlerBase.Completion">
<summary>
Gets a task that completes when this instance has completed disposal.
</summary>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.ReadAsync(System.Threading.CancellationToken)">
<summary>
Reads a distinct and complete message from the transport, waiting for one if necessary.
</summary>
<param name="cancellationToken">A token to cancel the read request.</param>
<returns>The received message, or <see langword="null" /> if the underlying transport ends before beginning another message.</returns>
<exception cref="T:System.InvalidOperationException">Thrown when <see cref="P:StreamJsonRpc.MessageHandlerBase.CanRead" /> returns <see langword="false" />.</exception>
<exception cref="T:System.IO.EndOfStreamException">Thrown if the transport ends while reading a message.</exception>
<exception cref="T:System.OperationCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled before a new message is received.</exception>
<remarks>
Implementations may assume this method is never called before any async result
from a prior call to this method has completed.
</remarks>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.WriteAsync(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)">
<summary>
Writes a message to the transport and flushes.
</summary>
<param name="content">The message to write.</param>
<param name="cancellationToken">A token to cancel the write request.</param>
<returns>A task that represents the asynchronous operation.</returns>
<exception cref="T:System.InvalidOperationException">Thrown when <see cref="P:StreamJsonRpc.MessageHandlerBase.CanWrite" /> returns <see langword="false" />.</exception>
<exception cref="T:System.OperationCanceledException">Thrown if <paramref name="cancellationToken" /> is canceled before message transmission begins.</exception>
<exception cref="T:System.ObjectDisposedException">Thrown if this instance is disposed before or during transmission.</exception>
<remarks>
Implementations should expect this method to be invoked concurrently
and use a queue to preserve message order as they are transmitted one at a time.
</remarks>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.Dispose">
<summary>
Disposes this instance, and cancels any pending read or write operations.
</summary>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.DisposeAsync">
<summary>
Disposes this instance, and cancels any pending read or write operations.
</summary>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.Dispose(System.Boolean)">
<summary>
Disposes resources allocated by this instance that are common to both reading and writing.
</summary>
<param name="disposing"><see langword="true" /> when being disposed; <see langword="false" /> when being finalized.</param>
<remarks>
<para>
This method is called by <see cref="M:StreamJsonRpc.MessageHandlerBase.DisposeAsync" /> after both <see cref="M:StreamJsonRpc.MessageHandlerBase.DisposeReader" /> and <see cref="M:StreamJsonRpc.MessageHandlerBase.DisposeWriter" /> have completed.
</para>
<para>Overrides of this method *should* call the base method as well.</para>
</remarks>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.DisposeReader">
<summary>
Disposes resources allocated by this instance that are used for reading (not writing).
</summary>
<remarks>
This method is called by <see cref="T:StreamJsonRpc.MessageHandlerBase" /> after the last read operation has completed.
</remarks>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.DisposeWriter">
<summary>
Disposes resources allocated by this instance that are used for writing (not reading).
</summary>
<remarks>
This method is called by <see cref="T:StreamJsonRpc.MessageHandlerBase" /> after the last write operation has completed.
Overrides of this method *should* call the base method as well.
</remarks>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.ReadCoreAsync(System.Threading.CancellationToken)">
<summary>
Reads a distinct and complete message, waiting for one if necessary.
</summary>
<param name="cancellationToken">A token to cancel the read request.</param>
<returns>
A task whose result is the received message.
A null string indicates the stream has ended.
An empty string should never be returned.
</returns>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.WriteCoreAsync(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)">
<summary>
Writes a message.
</summary>
<param name="content">The message to write.</param>
<param name="cancellationToken">A token to cancel the transmission.</param>
<returns>A task that represents the asynchronous write operation.</returns>
</member>
<member name="M:StreamJsonRpc.MessageHandlerBase.FlushAsync(System.Threading.CancellationToken)">
<summary>
Ensures that all messages transmitted up to this point are en route to their destination,
rather than sitting in some local buffer.
</summary>
<param name="cancellationToken">A cancellation token.</param>
<returns>
A <see cref="T:System.Threading.Tasks.Task" /> that completes when the write buffer has been transmitted,
or at least that the operation is in progress, if final transmission cannot be tracked.
</returns>
</member>
<member name="T:StreamJsonRpc.MessagePackFormatter">
<summary>
Serializes JSON-RPC messages using MessagePack (a fast, compact binary format).
</summary>
<remarks>
The MessagePack implementation used here comes from https://github.com/neuecc/MessagePack-CSharp.
The README on that project site describes use cases and its performance compared to alternative
.NET MessagePack implementations and this one appears to be the best by far.
</remarks>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.VersionPropertyName">
<summary>
The constant "jsonrpc", in its various forms.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.IdPropertyName">
<summary>
The constant "id", in its various forms.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.MethodPropertyName">
<summary>
The constant "method", in its various forms.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.ResultPropertyName">
<summary>
The constant "result", in its various forms.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.ErrorPropertyName">
<summary>
The constant "error", in its various forms.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.ParamsPropertyName">
<summary>
The constant "params", in its various forms.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.TraceParentPropertyName">
<summary>
The constant "traceparent", in its various forms.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.TraceStatePropertyName">
<summary>
The constant "tracestate", in its various forms.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.Version2">
<summary>
The constant "2.0", in its various forms.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.ParameterObjectPropertyTypes">
<summary>
A cache of property names to declared property types, indexed by their containing parameter object type.
</summary>
<remarks>
All access to this field should be while holding a lock on this member's value.
</remarks>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.BasicTypesResolver">
<summary>
A resolver for stateless formatters that make types serializable that users may expect to be,
but for which MessagePack itself provides no formatter in the default resolver.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.StringInterningResolver">
<summary>
The resolver to include when we want to enable string interning.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.messageSerializationOptions">
<summary>
The options to use for serializing top-level RPC messages.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.userDataSerializationOptions">
<summary>
The options to use for serializing user data (e.g. arguments, return values and errors).
</summary>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.MessagePackFormatter" /> class.
</summary>
</member>
<member name="P:StreamJsonRpc.MessagePackFormatter.IJsonRpcMessagePackRetention.OriginalMessagePack">
<summary>
Gets the original msgpack sequence that was deserialized into this message.
</summary>
<remarks>
The buffer is only retained for a short time. If it has already been cleared, the result of this property is an empty sequence.
</remarks>
</member>
<member name="P:StreamJsonRpc.MessagePackFormatter.DefaultUserDataSerializationOptions">
<summary>
Gets the default <see cref="T:MessagePack.MessagePackSerializerOptions" /> used for user data (arguments, return values and errors) in RPC calls
prior to any call to <see cref="M:StreamJsonRpc.MessagePackFormatter.SetMessagePackSerializerOptions(MessagePack.MessagePackSerializerOptions)" />.
</summary>
<value>
This is <see cref="F:MessagePack.Resolvers.StandardResolverAllowPrivate.Options" />
modified to use the <see cref="F:MessagePack.MessagePackSecurity.UntrustedData" /> security setting.
</value>
</member>
<member name="P:StreamJsonRpc.MessagePackFormatter.MultiplexingStream">
<inheritdoc cref="P:StreamJsonRpc.FormatterBase.MultiplexingStream" />
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.SetMessagePackSerializerOptions(MessagePack.MessagePackSerializerOptions)">
<summary>
Sets the <see cref="T:MessagePack.MessagePackSerializerOptions" /> to use for serialization of user data.
</summary>
<param name="options">
The options to use. Before this call, the options used come from <see cref="P:StreamJsonRpc.MessagePackFormatter.DefaultUserDataSerializationOptions" />.
</param>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.Deserialize(System.Buffers.ReadOnlySequence{System.Byte})">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.Serialize(System.Buffers.IBufferWriter{System.Byte},StreamJsonRpc.Protocol.JsonRpcMessage)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.GetJsonText(StreamJsonRpc.Protocol.JsonRpcMessage)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.StreamJsonRpc#IJsonRpcMessageFactory#CreateRequestMessage">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.StreamJsonRpc#IJsonRpcMessageFactory#CreateErrorMessage">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.StreamJsonRpc#IJsonRpcMessageFactory#CreateResultMessage">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.GetParamsObjectDictionary(System.Object)">
<summary>
Extracts a dictionary of property names and values from the specified params object.
</summary>
<param name="paramsObject">The params object.</param>
<returns>A dictionary of argument values and another of declared argument types, or <see langword="null" /> if <paramref name="paramsObject" /> is null.</returns>
<remarks>
This method supports DataContractSerializer-compliant types. This includes C# anonymous types.
</remarks>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.ReadProtocolVersion(MessagePack.MessagePackReader@)">
<summary>
Reads a string with an optimized path for the value "2.0".
</summary>
<param name="reader">The reader to use.</param>
<returns>The decoded string.</returns>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.WriteProtocolVersionPropertyAndValue(MessagePack.MessagePackWriter@,System.String)">
<summary>
Writes the JSON-RPC version property name and value in a highly optimized way.
</summary>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.MassageUserDataOptions(MessagePack.MessagePackSerializerOptions)">
<summary>
Takes the user-supplied resolver for their data types and prepares the wrapping options
and the dynamic object wrapper for serialization.
</summary>
<param name="userSuppliedOptions">The options for user data that is supplied by the user (or the default).</param>
<returns>The <see cref="T:MessagePack.MessagePackSerializerOptions" /> to use for all user data (args, return values and error data) and a special formatter to use when all we have is <see cref="T:System.Object" /> for this user data.</returns>
</member>
<member name="P:StreamJsonRpc.MessagePackFormatter.CommonString.Value">
<summary>
Gets the original string.
</summary>
</member>
<member name="P:StreamJsonRpc.MessagePackFormatter.CommonString.Key">
<summary>
Gets the 64-bit integer that represents the string without decoding it.
</summary>
</member>
<member name="P:StreamJsonRpc.MessagePackFormatter.CommonString.Key2">
<summary>
Gets the next 64-bit integer that represents the string without decoding it.
</summary>
</member>
<member name="P:StreamJsonRpc.MessagePackFormatter.CommonString.EncodedBytes">
<summary>
Gets the messagepack header and UTF-8 bytes for this string.
</summary>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.CommonString.TryWrite(MessagePack.MessagePackWriter@,System.String)">
<summary>
Writes out the messagepack binary for this common string, if it matches the given value.
</summary>
<param name="writer">The writer to use.</param>
<param name="value">The value to be written, if it matches this <see cref="T:StreamJsonRpc.MessagePackFormatter.CommonString" />.</param>
<returns><see langword="true" /> if <paramref name="value" /> matches this <see cref="P:StreamJsonRpc.MessagePackFormatter.CommonString.Value" /> and it was written; <see langword="false" /> otherwise.</returns>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.CommonString.TryRead(System.ReadOnlySpan{System.Byte})">
<summary>
Checks whether a span of UTF-8 bytes equal this common string.
</summary>
<param name="utf8String">The UTF-8 string.</param>
<returns><see langword="true" /> if the UTF-8 bytes are the encoding of this common string; <see langword="false" /> otherwise.</returns>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.RawMessagePack.ReadRaw(MessagePack.MessagePackReader@,System.Boolean)">
<summary>
Reads one raw messagepack token.
</summary>
<param name="reader">The reader to use.</param>
<param name="copy"><see langword="true" /> if the token must outlive the lifetime of the reader's underlying buffer; <see langword="false" /> otherwise.</param>
<returns>The raw messagepack slice.</returns>
</member>
<member name="T:StreamJsonRpc.MessagePackFormatter.ToStringHelper">
<summary>
A recyclable object that can serialize a message to JSON on demand.
</summary>
<remarks>
In perf traces, creation of this object used to show up as one of the most allocated objects.
It is used even when tracing isn't active. So we changed its design to be reused,
since its lifetime is only required during a synchronous call to a trace API.
</remarks>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.ToStringHelper.Activate(System.Buffers.ReadOnlySequence{System.Byte},MessagePack.MessagePackSerializerOptions)">
<summary>
Initializes this object to represent a message.
</summary>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.ToStringHelper.Deactivate">
<summary>
Cleans out this object to release memory and ensure <see cref="M:StreamJsonRpc.MessagePackFormatter.ToStringHelper.ToString" /> throws if someone uses it after deactivation.
</summary>
</member>
<member name="T:StreamJsonRpc.MessagePackFormatter.ProgressFormatterResolver.ProgressClientFormatter`1">
<summary>
Converts an instance of <see cref="T:System.IProgress`1" /> to a progress token.
</summary>
</member>
<member name="T:StreamJsonRpc.MessagePackFormatter.ProgressFormatterResolver.PreciseTypeFormatter`1">
<summary>
Converts a progress token to an <see cref="T:System.IProgress`1" /> or an <see cref="T:System.IProgress`1" /> into a token.
</summary>
</member>
<member name="T:StreamJsonRpc.MessagePackFormatter.AsyncEnumerableFormatterResolver.PreciseTypeFormatter`1">
<summary>
Converts an enumeration token to an <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />
or an <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> into an enumeration token.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.AsyncEnumerableFormatterResolver.PreciseTypeFormatter`1.TokenPropertyName">
<summary>
The constant "token", in its various forms.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.AsyncEnumerableFormatterResolver.PreciseTypeFormatter`1.ValuesPropertyName">
<summary>
The constant "values", in its various forms.
</summary>
</member>
<member name="T:StreamJsonRpc.MessagePackFormatter.AsyncEnumerableFormatterResolver.GeneratorFormatter`2">
<summary>
Converts an instance of <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> to an enumeration token.
</summary>
</member>
<member name="T:StreamJsonRpc.MessagePackFormatter.MessagePackExceptionResolver">
<summary>
Manages serialization of any <see cref="T:System.Exception" />-derived type that follows standard <see cref="T:System.SerializableAttribute" /> rules.
</summary>
<remarks>
A serializable class will:
1. Derive from <see cref="T:System.Exception" />
2. Be attributed with <see cref="T:System.SerializableAttribute" />
3. Declare a constructor with a signature of (<see cref="T:System.Runtime.Serialization.SerializationInfo" />, <see cref="T:System.Runtime.Serialization.StreamingContext" />).
</remarks>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.MessagePackExceptionResolver.exceptionRecursionCounter">
<summary>
Tracks recursion count while serializing or deserializing an exception.
</summary>
<devremarks>
This is placed here (<em>outside</em> the generic <see cref="T:StreamJsonRpc.MessagePackFormatter.MessagePackExceptionResolver.ExceptionFormatter`1" /> class)
so that it's one counter shared across all exception types that may be serialized or deserialized.
</devremarks>
</member>
<member name="T:StreamJsonRpc.MessagePackFormatter.EventArgsFormatter">
<summary>
Enables formatting the default/empty <see cref="T:System.EventArgs" /> class.
</summary>
</member>
<member name="F:StreamJsonRpc.MessagePackFormatter.EventArgsFormatter.Instance">
<summary>
The singleton instance of the formatter to be used.
</summary>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.EventArgsFormatter.Serialize(MessagePack.MessagePackWriter@,System.EventArgs,MessagePack.MessagePackSerializerOptions)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.EventArgsFormatter.Deserialize(MessagePack.MessagePackReader@,MessagePack.MessagePackSerializerOptions)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.TopLevelPropertyBag.#ctor(MessagePack.MessagePackSerializerOptions,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Buffers.ReadOnlySequence{System.Byte}})">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.MessagePackFormatter.TopLevelPropertyBag" /> class
for an incoming message.
</summary>
<param name="userDataSerializationOptions">The serializer options to use for this data.</param>
<param name="inboundUnknownProperties">The map of unrecognized inbound properties.</param>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.TopLevelPropertyBag.#ctor(MessagePack.MessagePackSerializerOptions)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.MessagePackFormatter.TopLevelPropertyBag" /> class
for an outbound message.
</summary>
<param name="serializerOptions">The serializer options to use for this data.</param>
</member>
<member name="M:StreamJsonRpc.MessagePackFormatter.TopLevelPropertyBag.WriteProperties(MessagePack.MessagePackWriter@)">
<summary>
Writes the properties tracked by this collection to a messagepack writer.
</summary>
<param name="writer">The writer to use.</param>
</member>
<member name="T:StreamJsonRpc.NewLineDelimitedMessageHandler">
<summary>
A JSON-RPC message handler that delimits messages with new lines.
</summary>
<remarks>
When reading messages, either \n or \r\n character sequences are permitted for new lines.
When writing messages the <see cref="P:StreamJsonRpc.NewLineDelimitedMessageHandler.NewLine" /> property controls which character sequence is used to terminate each message.
</remarks>
</member>
<member name="F:StreamJsonRpc.NewLineDelimitedMessageHandler.contentSequenceBuilder">
<summary>
The <see cref="T:System.Buffers.IBufferWriter`1" /> that buffers an outgoing message.
</summary>
</member>
<member name="F:StreamJsonRpc.NewLineDelimitedMessageHandler.newLine">
<summary>
Backing field for the <see cref="P:StreamJsonRpc.NewLineDelimitedMessageHandler.NewLine" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.NewLineDelimitedMessageHandler.newLineBytes">
<summary>
The bytes to write out as the new line after each message.
</summary>
</member>
<member name="M:StreamJsonRpc.NewLineDelimitedMessageHandler.#ctor(System.IO.Pipelines.IDuplexPipe,StreamJsonRpc.IJsonRpcMessageTextFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.NewLineDelimitedMessageHandler" /> class.
</summary>
<param name="pipe">The reader and writer to use for receiving/transmitting messages.</param>
<param name="formatter">The formatter used to serialize messages. Only UTF-8 formatters are supported.</param>
</member>
<member name="M:StreamJsonRpc.NewLineDelimitedMessageHandler.#ctor(System.IO.Pipelines.PipeWriter,System.IO.Pipelines.PipeReader,StreamJsonRpc.IJsonRpcMessageTextFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.NewLineDelimitedMessageHandler" /> class.
</summary>
<param name="writer">The writer to use for transmitting messages.</param>
<param name="reader">The reader to use for receiving messages.</param>
<param name="formatter">The formatter used to serialize messages. Only UTF-8 formatters are supported.</param>
</member>
<member name="M:StreamJsonRpc.NewLineDelimitedMessageHandler.#ctor(System.IO.Stream,System.IO.Stream,StreamJsonRpc.IJsonRpcMessageTextFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.NewLineDelimitedMessageHandler" /> class.
</summary>
<param name="writer">The stream to use for transmitting messages.</param>
<param name="reader">The stream to use for receiving messages.</param>
<param name="formatter">The formatter used to serialize messages. Only UTF-8 formatters are supported.</param>
</member>
<member name="T:StreamJsonRpc.NewLineDelimitedMessageHandler.NewLineStyle">
<summary>
Describes the supported styles of new lines that can be written.
</summary>
</member>
<member name="F:StreamJsonRpc.NewLineDelimitedMessageHandler.NewLineStyle.Lf">
<summary>
Newlines are represented as a single \n character.
</summary>
</member>
<member name="F:StreamJsonRpc.NewLineDelimitedMessageHandler.NewLineStyle.CrLf">
<summary>
Newlines are represented by a \r\n character sequence.
</summary>
</member>
<member name="P:StreamJsonRpc.NewLineDelimitedMessageHandler.NewLine">
<summary>
Gets or sets the new line sequence to use to terminate a JSON-RPC message.
</summary>
</member>
<member name="P:StreamJsonRpc.NewLineDelimitedMessageHandler.Formatter">
<inheritdoc cref="P:StreamJsonRpc.MessageHandlerBase.Formatter" />
</member>
<member name="M:StreamJsonRpc.NewLineDelimitedMessageHandler.Write(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.NewLineDelimitedMessageHandler.ReadCoreAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.NewLineDelimitedMessageHandler.GetLineFeedSequence(System.Text.Encoding,StreamJsonRpc.NewLineDelimitedMessageHandler.NewLineStyle)">
<summary>
Gets the byte sequence for new lines.
</summary>
<param name="encoding">The encoding to use to convert the new line characters to bytes.</param>
<param name="style">The style of new line to produce.</param>
<returns>The bytes to emit for each new line.</returns>
</member>
<member name="M:StreamJsonRpc.NewLineDelimitedMessageHandler.CommonConstructor">
<summary>
Validates and initializes fields as they should be from every constructor.
</summary>
</member>
<member name="T:StreamJsonRpc.PipeMessageHandler">
<summary>
An abstract base class for for sending and receiving messages
using <see cref="T:System.IO.Pipelines.PipeReader" /> and <see cref="T:System.IO.Pipelines.PipeWriter" />.
</summary>
</member>
<member name="F:StreamJsonRpc.PipeMessageHandler.LargeMessageThreshold">
<summary>
The largest size of a message to buffer completely before deserialization begins
when we have an async deserializing alternative from the formatter.
</summary>
<remarks>
This value is chosen to match the default buffer size for the <see cref="T:System.IO.Pipelines.PipeOptions" /> class
since exceeding the <see cref="P:System.IO.Pipelines.PipeOptions.PauseWriterThreshold" /> would cause an exception
when we call <see cref="M:System.IO.Pipelines.PipeReader.AdvanceTo(System.SequencePosition,System.SequencePosition)" /> to wait for more data.
</remarks>
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.#ctor(System.IO.Pipelines.IDuplexPipe,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.PipeMessageHandler" /> class.
</summary>
<param name="pipe">The reader and writer to use for receiving/transmitting messages.</param>
<param name="formatter">The formatter used to serialize messages.</param>
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.#ctor(System.IO.Pipelines.PipeWriter,System.IO.Pipelines.PipeReader,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.PipeMessageHandler" /> class.
</summary>
<param name="writer">The writer to use for transmitting messages.</param>
<param name="reader">The reader to use for receiving messages.</param>
<param name="formatter">The formatter used to serialize messages.</param>
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.#ctor(System.IO.Stream,System.IO.Stream,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.PipeMessageHandler" /> class.
</summary>
<param name="writer">The stream to use for transmitting messages.</param>
<param name="reader">The stream to use for receiving messages.</param>
<param name="formatter">The formatter used to serialize messages.</param>
</member>
<member name="P:StreamJsonRpc.PipeMessageHandler.CanRead">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.PipeMessageHandler.CanWrite">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.PipeMessageHandler.Reader">
<summary>
Gets the reader to use for receiving messages.
</summary>
</member>
<member name="P:StreamJsonRpc.PipeMessageHandler.Writer">
<summary>
Gets the writer to use for transmitting messages.
</summary>
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.StreamJsonRpc#Reflection#IJsonRpcMessageBufferManager#DeserializationComplete(StreamJsonRpc.Protocol.JsonRpcMessage)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.WriteCoreAsync(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.Write(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)">
<summary>
Writes a message to the pipe.
</summary>
<param name="content">The message to write.</param>
<param name="cancellationToken">A token to cancel the transmission.</param>
<remarks>
Implementations may assume the method is never called before the previous call has completed.
They can assume their caller will invoke <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> on their behalf
after writing is completed.
</remarks>
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.DisposeReader">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.DisposeWriter">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.ReadAtLeastAsync(System.Int32,System.Boolean,System.Threading.CancellationToken)">
<summary>
Reads from the <see cref="P:StreamJsonRpc.PipeMessageHandler.Reader" /> until at least a specified number of bytes are available.
</summary>
<param name="requiredBytes">The number of bytes that must be available.</param>
<param name="allowEmpty"><see langword="true" /> to allow returning 0 bytes if the end of the stream is encountered before any bytes are read.</param>
<param name="cancellationToken">A cancellation token.</param>
<returns>The <see cref="T:System.IO.Pipelines.ReadResult" /> containing at least <paramref name="requiredBytes" /> bytes.</returns>
<exception cref="T:System.OperationCanceledException">Thrown if <see cref="P:System.IO.Pipelines.ReadResult.IsCanceled" />.</exception>
<exception cref="T:System.IO.EndOfStreamException">
Thrown if <see cref="P:System.IO.Pipelines.ReadResult.IsCompleted" /> before we have <paramref name="requiredBytes" /> bytes.
Not thrown if 0 bytes were read and <paramref name="allowEmpty" /> is <see langword="true" />.
</exception>
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.DeserializeMessageAsync(System.Int32,System.Threading.CancellationToken)">
<summary>
Deserializes a JSON-RPC message using the <see cref="P:StreamJsonRpc.MessageHandlerBase.Formatter" />.
</summary>
<param name="contentLength">The length of the JSON-RPC message.</param>
<param name="cancellationToken">A cancellation token.</param>
<returns>The deserialized message.</returns>
</member>
<member name="M:StreamJsonRpc.PipeMessageHandler.DeserializeMessageAsync(System.Int32,System.Text.Encoding,System.Text.Encoding,System.Threading.CancellationToken)">
<summary>
Deserializes a JSON-RPC message using the <see cref="P:StreamJsonRpc.MessageHandlerBase.Formatter" />.
</summary>
<param name="contentLength">The length of the JSON-RPC message.</param>
<param name="specificEncoding">The encoding to use during deserialization, as specified in a header for this particular message.</param>
<param name="defaultEncoding">The encoding to use when <paramref name="specificEncoding" /> is <see langword="null" /> if the <see cref="P:StreamJsonRpc.MessageHandlerBase.Formatter" /> supports encoding.</param>
<param name="cancellationToken">A cancellation token.</param>
<returns>The deserialized message.</returns>
<exception cref="T:System.NotSupportedException">Thrown if <paramref name="specificEncoding" /> is non-null and the formatter does not implement the appropriate interface to supply the encoding.</exception>
</member>
<member name="T:StreamJsonRpc.Protocol.CommonErrorData">
<summary>
A class that describes useful data that may be found in the JSON-RPC error message's error.data property.
</summary>
</member>
<member name="M:StreamJsonRpc.Protocol.CommonErrorData.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Protocol.CommonErrorData" /> class.
</summary>
</member>
<member name="M:StreamJsonRpc.Protocol.CommonErrorData.#ctor(System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Protocol.CommonErrorData" /> class.
</summary>
<param name="copyFrom">The exception to copy error details from.</param>
</member>
<member name="P:StreamJsonRpc.Protocol.CommonErrorData.TypeName">
<summary>
Gets or sets the type of error (e.g. the full type name of the exception thrown).
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.CommonErrorData.Message">
<summary>
Gets or sets the message associated with this error.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.CommonErrorData.StackTrace">
<summary>
Gets or sets the stack trace associated with the error.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.CommonErrorData.HResult">
<summary>
Gets or sets the application error code or HRESULT of the failure.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.CommonErrorData.Inner">
<summary>
Gets or sets the inner error information, if any.
</summary>
</member>
<member name="T:StreamJsonRpc.Protocol.IJsonRpcMessageWithId">
<summary>
An interface found on JSON-RPC protocol messages that contain an <c>id</c> field.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.IJsonRpcMessageWithId.RequestId">
<summary>
Gets or sets the ID on a message.
</summary>
</member>
<member name="T:StreamJsonRpc.Protocol.JsonRpcError">
<summary>
Describes the error resulting from a <see cref="T:StreamJsonRpc.Protocol.JsonRpcRequest" /> that failed on the server.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcError.Error">
<summary>
Gets or sets the detail about the error.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcError.Id">
<summary>
Gets or sets an identifier established by the client if a response to the request is expected.
</summary>
<value>A <see cref="T:System.String" />, an <see cref="T:System.Int32" />, a <see cref="T:System.Int64" />, or <see langword="null" />.</value>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcError.RequestId">
<summary>
Gets or sets an identifier established by the client if a response to the request is expected.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcError.DebuggerDisplay">
<summary>
Gets the string to display in the debugger for this instance.
</summary>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcError.ToString">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail">
<summary>
Describes the error.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Code">
<summary>
Gets or sets a number that indicates the error type that occurred.
</summary>
<value>
The error codes from and including -32768 to -32000 are reserved for errors defined by the spec or this library.
Codes outside that range are available for app-specific error codes.
</value>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Message">
<summary>
Gets or sets a short description of the error.
</summary>
<remarks>
The message SHOULD be limited to a concise single sentence.
</remarks>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data">
<summary>
Gets or sets additional data about the error.
</summary>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.GetData``1">
<summary>
Gets the value of the <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data" />, taking into account any possible type coercion.
</summary>
<typeparam name="T">The <see cref="T:System.Type" /> to coerce the <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data" /> to.</typeparam>
<returns>The result.</returns>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.GetData(System.Type)">
<summary>
Gets the value of the <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data" />, taking into account any possible type coercion.
</summary>
<param name="dataType">The <see cref="T:System.Type" /> to deserialize the data object to.</param>
<returns>The result.</returns>
<exception cref="T:System.ArgumentNullException">Thrown if <paramref name="dataType" /> is null.</exception>
<remarks>
Derived types may override this method in order to deserialize the <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data" />
such that it can be assignable to <paramref name="dataType" />.
The default implementation does nothing to convert the <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data" /> object to match <paramref name="dataType" />, but simply returns the existing object.
Derived types should *not* throw exceptions. This is a best effort method and returning null or some other value is preferable to throwing
as it can disrupt an existing exception handling path.
</remarks>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.SetExpectedDataType(System.Type)">
<summary>
Provides a hint for a deferred deserialization of the <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data" /> value as to the type
argument that will be used when calling <see cref="M:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.GetData``1" /> later.
</summary>
<param name="dataType">The type that will be used as the generic type argument to <see cref="M:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.GetData``1" />.</param>
<remarks>
Overridding methods in types that retain buffers used to deserialize should deserialize within this method and clear those buffers
to prevent further access to these buffers which may otherwise happen concurrently with a call to <see cref="M:StreamJsonRpc.Reflection.IJsonRpcMessageBufferManager.DeserializationComplete(StreamJsonRpc.Protocol.JsonRpcMessage)" />
that would recycle the same buffer being deserialized from.
</remarks>
</member>
<member name="T:StreamJsonRpc.Protocol.JsonRpcErrorCode">
<summary>
Error codes laid out in the JSON-RPC spec or this library.
</summary>
<remarks>
Per <see href="https://www.jsonrpc.org/specification#error_object">the spec</see>, the error codes from and including -32768 to -32000 are reserved for pre-defined errors.
The range from -32000 to -32099 is "Reserved for implementation-defined server-errors", so we define whatever new we need for StreamJsonRpc.
</remarks>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.InvocationError">
<summary>
Indicates the RPC call was made but the target threw an exception.
The <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data" /> included in the <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.Error" /> is likely to be <see cref="T:StreamJsonRpc.Protocol.CommonErrorData" />.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.NoMarshaledObjectFound">
<summary>
Indicates a request was made to a remotely marshaled object that never existed or has already been disposed of.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.ResponseSerializationFailure">
<summary>
Indicates a response could not be serialized as the application intended.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.InvocationErrorWithException">
<summary>
Indicates the RPC call was made but the target threw an exception.
The <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.ErrorDetail.Data" /> included in the <see cref="P:StreamJsonRpc.Protocol.JsonRpcError.Error" /> should be interpreted as an <see cref="T:System.Exception" /> serialized via <see cref="T:System.Runtime.Serialization.ISerializable" />.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.ParseError">
<summary>
Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.InvalidRequest">
<summary>
The JSON sent is not a valid Request object.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.MethodNotFound">
<summary>
The method does not exist / is not available.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.InvalidParams">
<summary>
Invalid method parameter(s).
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.InternalError">
<summary>
Internal JSON-RPC error.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcErrorCode.RequestCanceled">
<summary>
Execution of the server method was aborted due to a cancellation request from the client.
</summary>
</member>
<member name="T:StreamJsonRpc.Protocol.JsonRpcMessage">
<summary>
The base class for a JSON-RPC request or response.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcMessage.Version">
<summary>
Gets or sets the version of the JSON-RPC protocol that this message conforms to.
</summary>
<value>Defaults to "2.0".</value>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcMessage.TryGetTopLevelProperty``1(System.String,``0@)">
<summary>
Retrieves a top-level property from an incoming message that is an extension to the JSON-RPC specification.
</summary>
<typeparam name="T">The type to deserialize the value as, if it is present.</typeparam>
<param name="name">The name of the top-level property.</param>
<param name="value">
Receives the deserialized value if the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> supports reading such properties
and the property is present in the message.
Otherwise, this parameter is set to its <see langword="default" /> value.
</param>
<returns>
<see langword="true" /> if the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> supports this extensibility
and the property was present on the message; otherwise <see langword="false" />.
</returns>
<exception cref="T:System.InvalidOperationException">May be thrown when called on an outbound message.</exception>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="name" /> is <see langword="null" />.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="name" /> is reserved by the JSON-RPC spec.</exception>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcMessage.TrySetTopLevelProperty``1(System.String,``0)">
<summary>
Sets a top-level property in the message that is an extension to JSON-RPC specification.
</summary>
<typeparam name="T">The type of value to be serialized.</typeparam>
<param name="name">The name of the property. This should <em>not</em> collide with any property defined by the JSON-RPC specification.</param>
<param name="value">The value for the property.</param>
<returns>
<see langword="true" /> if the formatter supports setting top-level properties;
<see langword="false" /> otherwise.
</returns>
<exception cref="T:System.InvalidOperationException">May be thrown when called on an inbound message.</exception>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="name" /> is <see langword="null" />.</exception>
<exception cref="T:System.ArgumentException">Thrown when <paramref name="name" /> is reserved by the JSON-RPC spec.</exception>
</member>
<member name="T:StreamJsonRpc.Protocol.JsonRpcRequest">
<summary>
Describes a method to be invoked on the server.
</summary>
</member>
<member name="T:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentMatchResult">
<summary>
The result of an attempt to match request arguments with a candidate method's parameters.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentMatchResult.Success">
<summary>
All arguments matched up with all method parameters.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentMatchResult.ParameterArgumentCountMismatch">
<summary>
The number of arguments did not match the number of parameters.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentMatchResult.ParameterArgumentTypeMismatch">
<summary>
At least one argument could not be made to match its corresponding parameter.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentMatchResult.MissingArgument">
<summary>
An argument could not be found for a required parameter.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.Method">
<summary>
Gets or sets the name of the method to be invoked.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.Arguments">
<summary>
Gets or sets the arguments to use when invoking the specified <see cref="P:StreamJsonRpc.Protocol.JsonRpcRequest.Method" />.
Either an array of arguments or an object whose properties are used in a named arguments object.
</summary>
<value>
An array of arguments OR map of named arguments.
Preferably either an instance of <see cref="T:System.Collections.Generic.IReadOnlyDictionary`2" /> where the key is a string representing the name of the parameter
and the value is the argument, or an array of <see cref="T:System.Object" />.
If neither of these, <see cref="P:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentCount" /> and <see cref="M:StreamJsonRpc.Protocol.JsonRpcRequest.TryGetArgumentByNameOrIndex(System.String,System.Int32,System.Type,System.Object@)" /> should be overridden.
</value>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.Id">
<summary>
Gets or sets an identifier established by the client if a response to the request is expected.
</summary>
<value>A <see cref="T:System.String" />, an <see cref="T:System.Int32" />, a <see cref="T:System.Int64" />, or <see langword="null" />.</value>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.RequestId">
<summary>
Gets or sets an identifier established by the client if a response to the request is expected.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.IsResponseExpected">
<summary>
Gets a value indicating whether a response to this request is expected.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.IsNotification">
<summary>
Gets a value indicating whether this is a notification, and no response is expected.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentCount">
<summary>
Gets the number of arguments supplied in the request.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.NamedArguments">
<summary>
Gets or sets the dictionary of named arguments, if applicable.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.NamedArgumentDeclaredTypes">
<summary>
Gets or sets a dictionary of <see cref="T:System.Type" /> objects indexed by the property name that describe how each element in <see cref="P:StreamJsonRpc.Protocol.JsonRpcRequest.NamedArguments" /> is expected by the server to be typed.
If specified, this must have exactly the same size as <see cref="P:StreamJsonRpc.Protocol.JsonRpcRequest.NamedArguments" /> and contain no <see langword="null" /> values.
</summary>
<remarks>
This property is *not* serialized into the JSON-RPC message.
On the client-side of an RPC call it comes from the declared property types in the parameter object.
On the server-side of the RPC call it comes from the types of each parameter on the invoked RPC method.
This list is used for purposes of aiding the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> in serialization.
</remarks>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentsArray">
<summary>
Gets or sets an array of arguments, if applicable.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentsList">
<summary>
Gets or sets a read only list of arguments, if applicable.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentListDeclaredTypes">
<summary>
Gets or sets a list of <see cref="T:System.Type" /> objects that describe how each element in <see cref="P:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentsList" /> is expected by the server to be typed.
If specified, this must have exactly the same length as <see cref="P:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentsList" /> and contain no <see langword="null" /> elements.
</summary>
<remarks>
This property is *not* serialized into the JSON-RPC message.
On the client-side of an RPC call it comes from the typed arguments supplied to the
<see cref="M:StreamJsonRpc.JsonRpc.InvokeWithCancellationAsync``1(System.String,System.Collections.Generic.IReadOnlyList{System.Object},System.Collections.Generic.IReadOnlyList{System.Type},System.Threading.CancellationToken)" />
method.
On the server-side of the RPC call it comes from the types of each parameter on the invoked RPC method.
This list is used for purposes of aiding the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> in serialization.
</remarks>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.ArgumentNames">
<summary>
Gets the sequence of argument names, if applicable.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.TraceParent">
<summary>
Gets or sets the data for the <see href="https://www.w3.org/TR/trace-context/">W3C Trace Context</see> <c>traceparent</c> value.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.TraceState">
<summary>
Gets or sets the data for the <see href="https://www.w3.org/TR/trace-context/">W3C Trace Context</see> <c>tracestate</c> value.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcRequest.DebuggerDisplay">
<summary>
Gets the string to display in the debugger for this instance.
</summary>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcRequest.TryGetTypedArguments(System.ReadOnlySpan{System.Reflection.ParameterInfo},System.Span{System.Object})">
<summary>
Gets the arguments to supply to the method invocation, coerced to types that will satisfy the given list of parameters.
</summary>
<param name="parameters">The list of parameters that the arguments must satisfy.</param>
<param name="typedArguments">
An array to initialize with arguments that can satisfy CLR type requirements for each of the <paramref name="parameters" />.
The length of this span must equal the length of <paramref name="parameters" />.
</param>
<returns><see langword="true" /> if all the arguments can conform to the types of the <paramref name="parameters" /> and <paramref name="typedArguments" /> is initialized; <see langword="false" /> otherwise.</returns>
<exception cref="T:StreamJsonRpc.RpcArgumentDeserializationException">Thrown if the argument exists, but cannot be deserialized.</exception>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcRequest.TryGetArgumentByNameOrIndex(System.String,System.Int32,System.Type,System.Object@)">
<summary>
Retrieves an argument for the RPC request.
</summary>
<param name="name">The name of the parameter that requires an argument. May be null if the caller knows they want a positional argument.</param>
<param name="position">The index of the parameter that requires an argument. May be -1 for an argument with no position.</param>
<param name="typeHint">The type of the parameter that requires an argument. May be null if the type need not be coerced.</param>
<param name="value">Receives the value of the argument, if it exists. It MAY be returned even if it does not conform to <paramref name="typeHint" />.</param>
<returns><see langword="true" /> if an argument is available for a parameter with the given name or position; <see langword="false" /> otherwise.</returns>
<remarks>
A derived-type may override this method in order to consider the <paramref name="typeHint" />
and deserialize the required argument on-demand such that it can satisfy the type requirement.
</remarks>
<exception cref="T:StreamJsonRpc.RpcArgumentDeserializationException">Thrown if the argument exists, but cannot be deserialized.</exception>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcRequest.ToString">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.Protocol.JsonRpcResult">
<summary>
Describes the result of a successful method invocation.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcResult.Result">
<summary>
Gets or sets the value of the result of an invocation, if any.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcResult.ResultDeclaredType">
<summary>
Gets or sets the declared type of the return value.
</summary>
<remarks>
This value is not serialized, but is used by the RPC server to assist in serialization where necessary.
</remarks>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcResult.Id">
<summary>
Gets or sets an identifier established by the client if a response to the request is expected.
</summary>
<value>A <see cref="T:System.String" />, an <see cref="T:System.Int32" />, a <see cref="T:System.Int64" />, or <see langword="null" />.</value>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcResult.RequestId">
<summary>
Gets or sets an identifier established by the client if a response to the request is expected.
</summary>
</member>
<member name="P:StreamJsonRpc.Protocol.JsonRpcResult.DebuggerDisplay">
<summary>
Gets the string to display in the debugger for this instance.
</summary>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcResult.GetResult``1">
<summary>
Gets the value of the <see cref="P:StreamJsonRpc.Protocol.JsonRpcResult.Result" />, taking into account any possible type coercion.
</summary>
<typeparam name="T">The <see cref="T:System.Type" /> to coerce the <see cref="P:StreamJsonRpc.Protocol.JsonRpcResult.Result" /> to.</typeparam>
<returns>The result.</returns>
<remarks>
Derived types may override this method in order to deserialize the <see cref="P:StreamJsonRpc.Protocol.JsonRpcResult.Result" />
such that it can be assignable to <typeparamref name="T" />.
</remarks>
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcResult.ToString">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.Protocol.JsonRpcResult.SetExpectedResultType(System.Type)">
<summary>
Provides a hint for a deferred deserialization of the <see cref="P:StreamJsonRpc.Protocol.JsonRpcResult.Result" /> value as to the type
argument that will be used when calling <see cref="M:StreamJsonRpc.Protocol.JsonRpcResult.GetResult``1" /> later.
</summary>
<param name="resultType">The type that will be used as the generic type argument to <see cref="M:StreamJsonRpc.Protocol.JsonRpcResult.GetResult``1" />.</param>
</member>
<member name="F:StreamJsonRpc.Protocol.TraceParent.TraceFlags.None">
<summary>
No flags.
</summary>
</member>
<member name="F:StreamJsonRpc.Protocol.TraceParent.TraceFlags.Sampled">
<summary>
The parent is tracing their action.
</summary>
</member>
<member name="M:StreamJsonRpc.ProxyGeneration.Get(System.Reflection.TypeInfo,System.ValueTuple{System.Reflection.TypeInfo,System.Int32}[])">
<summary>
Gets a dynamically generated type that implements a given interface in terms of a <see cref="T:StreamJsonRpc.JsonRpc" /> instance.
</summary>
<param name="contractInterface">The interface that describes the RPC contract, and that the client proxy should implement.</param>
<param name="implementedOptionalInterfaces">Additional marshalable interfaces that the client proxy should implement.</param>
<returns>The generated type.</returns>
</member>
<member name="M:StreamJsonRpc.ProxyGeneration.SortRpcInterfaces(System.Collections.Generic.List{System.ValueTuple{System.Reflection.TypeInfo,System.Nullable{System.Int32}}})">
<summary>
Sorts <paramref name="list" /> so that:
<list type="number">
<item><description>interfaces that are extending a lesser number of other interfaces in <paramref name="list" /> come first;</description></item>
<item><description>interfaces extending the same number of other interfaces in <paramref name="list" />, are ordered by optional interface code;
where a <see langword="null" /> code comes first.</description></item>
</list>
</summary>
<param name="list">The list of RPC interfaces to be sorted.</param>
</member>
<member name="M:StreamJsonRpc.ProxyGeneration.AdaptReturnType(System.Reflection.MethodInfo,System.Boolean,System.Boolean,System.Reflection.Emit.ILGenerator,System.Reflection.MethodInfo,System.Reflection.ParameterInfo)">
<summary>
Converts the value on the stack to one compatible with the method's return type.
</summary>
<param name="method">The interface method that we're generating code for.</param>
<param name="returnTypeIsValueTask"><see langword="true" /> if the return type is <see cref="T:System.Threading.Tasks.ValueTask" /> or <see cref="T:System.Threading.Tasks.ValueTask`1" />; <see langword="false" /> otherwise.</param>
<param name="returnTypeIsIAsyncEnumerable"><see langword="true" /> if the return type is <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />; <see langword="false" /> otherwise.</param>
<param name="il">The IL emitter for the method.</param>
<param name="invokingMethod">The Invoke method on <see cref="T:StreamJsonRpc.JsonRpc" /> that IL was just emitted to invoke.</param>
<param name="cancellationTokenParameter">The <see cref="T:System.Threading.CancellationToken" /> parameter in the proxy method, if there is one.</param>
</member>
<member name="M:StreamJsonRpc.ProxyGeneration.GetProxyModuleBuilder(System.Reflection.TypeInfo)">
<summary>
Gets the <see cref="T:System.Reflection.Emit.ModuleBuilder" /> to use for generating a proxy for the given type.
</summary>
<param name="interfaceType">The type of the interface to generate a proxy for.</param>
<returns>The <see cref="T:System.Reflection.Emit.ModuleBuilder" /> to use.</returns>
</member>
<member name="T:StreamJsonRpc.ProxyGeneration.GeneratedProxiesByInterfaceKey">
<summary>
Dictionary key for <see cref="F:StreamJsonRpc.ProxyGeneration.GeneratedProxiesByInterface" />.
</summary>
</member>
<member name="T:StreamJsonRpc.ProxyGeneration.AsyncEnumerableProxy`1">
<summary>
A synthesized <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> that makes a promise for such a value look like the actual value.
</summary>
<typeparam name="T">The type of element produced by the enumerable.</typeparam>
</member>
<member name="T:StreamJsonRpc.Reflection.CodeGenHelpers">
<summary>
Helper methods for dynamically generated proxies to invoke.
This type is only public because mono does not support IgnoresAccessChecksToAttribute. Do not call directly.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.CodeGenHelpers.CreateAsyncEnumerableProxy``1(System.Threading.Tasks.Task{System.Collections.Generic.IAsyncEnumerable{``0}},System.Threading.CancellationToken)">
<inheritdoc cref="T:StreamJsonRpc.ProxyGeneration.AsyncEnumerableProxy`1" />
</member>
<member name="F:StreamJsonRpc.Reflection.ExceptionSerializationHelpers.WatsonBucketsKey">
<summary>
The name of the value stored by exceptions that stores watson bucket information.
</summary>
<remarks>
This value should be suppressed when writing or reading exceptions as it is irrelevant to
remote parties and otherwise adds to the size to the payload.
</remarks>
</member>
<member name="M:StreamJsonRpc.Reflection.ExceptionSerializationHelpers.GetSafeMemberCount(System.Runtime.Serialization.SerializationInfo)">
<summary>
Gets a value like <see cref="P:System.Runtime.Serialization.SerializationInfo.MemberCount" />
but omits members that should not be serialized.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.ExceptionSerializationHelpers.GetSafeMembers(System.Runtime.Serialization.SerializationInfo)">
<summary>
Gets a member enumerator that omits members that should not be serialized.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.ExceptionSerializationHelpers.AddSafeValue(System.Runtime.Serialization.SerializationInfo,System.String,System.Object)">
<summary>
Adds a member if it isn't among those that should not be deserialized.
</summary>
</member>
<member name="T:StreamJsonRpc.Reflection.IJsonRpcFormatterCallbacks">
<summary>
Implemented by <see cref="T:StreamJsonRpc.JsonRpc" /> to expose callbacks allowing an <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> to perform resource cleanup.
</summary>
</member>
<member name="E:StreamJsonRpc.Reflection.IJsonRpcFormatterCallbacks.RequestTransmissionAborted">
<summary>
Occurs when <see cref="T:StreamJsonRpc.JsonRpc" /> aborts the transmission of an outbound request (that was not a notification).
</summary>
<remarks>
This usually occurs because of an exception during serialization or transmission, possibly due to cancellation.
</remarks>
</member>
<member name="E:StreamJsonRpc.Reflection.IJsonRpcFormatterCallbacks.ResponseReceived">
<summary>
Occurs when <see cref="T:StreamJsonRpc.JsonRpc" /> receives a response to a previously sent request.
</summary>
</member>
<member name="E:StreamJsonRpc.Reflection.IJsonRpcFormatterCallbacks.ResponseSent">
<summary>
Occurs when <see cref="T:StreamJsonRpc.JsonRpc" /> transmits a response message.
</summary>
</member>
<member name="T:StreamJsonRpc.Reflection.IJsonRpcFormatterState">
<summary>
An interface implemented by <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> instances
to support some formatter extensions such as <see cref="T:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker" />.
</summary>
</member>
<member name="P:StreamJsonRpc.Reflection.IJsonRpcFormatterState.SerializingMessageWithId">
<summary>
Gets the id of the request or response currently being serialized.
</summary>
</member>
<member name="P:StreamJsonRpc.Reflection.IJsonRpcFormatterState.DeserializingMessageWithId">
<summary>
Gets the ID of the response currently being deserialized.
</summary>
</member>
<member name="P:StreamJsonRpc.Reflection.IJsonRpcFormatterState.SerializingRequest">
<summary>
Gets a value indicating whether a <see cref="T:StreamJsonRpc.Protocol.JsonRpcRequest" /> is being serialized.
</summary>
<remarks>
A response is being serialized if this property's value is <see langword="false" /> while <see cref="P:StreamJsonRpc.Reflection.IJsonRpcFormatterState.SerializingMessageWithId" /> is non-empty.
</remarks>
</member>
<member name="T:StreamJsonRpc.Reflection.IJsonRpcFormatterTracingCallbacks">
<summary>
Optionally implemented by a <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> when it needs the fully serialized sequence in order to trace the JSON representation of the message.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.IJsonRpcFormatterTracingCallbacks.OnSerializationComplete(StreamJsonRpc.Protocol.JsonRpcMessage,System.Buffers.ReadOnlySequence{System.Byte})">
<summary>
Invites the formatter to call <see cref="M:StreamJsonRpc.Reflection.IJsonRpcTracingCallbacks.OnMessageSerialized(StreamJsonRpc.Protocol.JsonRpcMessage,System.Object)" /> with the JSON representation of the message just serialized..
</summary>
<param name="message">The message that was just serialized.</param>
<param name="encodedMessage">The encoded copy of the message, as it recently came from the <see cref="M:StreamJsonRpc.IJsonRpcMessageFormatter.Serialize(System.Buffers.IBufferWriter{System.Byte},StreamJsonRpc.Protocol.JsonRpcMessage)" /> method.</param>
</member>
<member name="T:StreamJsonRpc.Reflection.IJsonRpcMessageBufferManager">
<summary>
An interface that may be found on an <see cref="T:StreamJsonRpc.IJsonRpcMessageHandler" /> object to request notification of when
message deserialization is completed so buffers can be released or safely recycled.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.IJsonRpcMessageBufferManager.DeserializationComplete(StreamJsonRpc.Protocol.JsonRpcMessage)">
<summary>
Notifies that it is safe to free buffers held to deserialize the payload for a message because all deserialization attempts are completed.
</summary>
<param name="message">The message whose deserialization is done.</param>
<remarks>
Implementations are guaranteed to be called at least once for each message when deserialization is completed.
This method will be invoked before the next request to <see cref="M:StreamJsonRpc.IJsonRpcMessageHandler.ReadAsync(System.Threading.CancellationToken)" />.
</remarks>
</member>
<member name="T:StreamJsonRpc.Reflection.IJsonRpcTracingCallbacks">
<summary>
An interface implemented by <see cref="T:StreamJsonRpc.JsonRpc" /> for <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> implementations to use to facilitate message tracing.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.IJsonRpcTracingCallbacks.OnMessageSerialized(StreamJsonRpc.Protocol.JsonRpcMessage,System.Object)">
<summary>
Occurs when the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> has serialized a message for transmission.
</summary>
<param name="message">The JSON-RPC message.</param>
<param name="encodedMessage">The encoded form of the message. Calling <see cref="M:System.Object.ToString" /> on this should produce the JSON-RPC text of the message.</param>
</member>
<member name="M:StreamJsonRpc.Reflection.IJsonRpcTracingCallbacks.OnMessageDeserialized(StreamJsonRpc.Protocol.JsonRpcMessage,System.Object)">
<summary>
Occurs when the <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> has deserialized an incoming message.
</summary>
<param name="message">The JSON-RPC message.</param>
<param name="encodedMessage">The encoded form of the message. Calling <see cref="M:System.Object.ToString" /> on this should produce the JSON-RPC text of the message.</param>
</member>
<member name="T:StreamJsonRpc.Reflection.JsonRpcMessageEventArgs">
<summary>
Carries the <see cref="P:StreamJsonRpc.Reflection.JsonRpcMessageEventArgs.RequestId" /> from request or response messages.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.JsonRpcMessageEventArgs.#ctor(StreamJsonRpc.RequestId)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Reflection.JsonRpcMessageEventArgs" /> class.
</summary>
<param name="requestId">The ID from the request or response that the event is regarding.</param>
</member>
<member name="M:StreamJsonRpc.Reflection.JsonRpcMessageEventArgs.#ctor(StreamJsonRpc.Protocol.IJsonRpcMessageWithId)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Reflection.JsonRpcMessageEventArgs" /> class.
</summary>
<param name="message">The message the event is regarding.</param>
</member>
<member name="P:StreamJsonRpc.Reflection.JsonRpcMessageEventArgs.RequestId">
<summary>
Gets the id on the request, result or error.
</summary>
</member>
<member name="T:StreamJsonRpc.Reflection.JsonRpcResponseEventArgs">
<summary>
Carries the <see cref="T:StreamJsonRpc.RequestId" /> and success status of response messages.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.JsonRpcResponseEventArgs.#ctor(StreamJsonRpc.RequestId,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Reflection.JsonRpcResponseEventArgs" /> class.
</summary>
<param name="requestId">The ID from the request or response that the event is regarding.</param>
<param name="isSuccessfulResponse">A flag indicating whether the response is a result (as opposed to an error).</param>
</member>
<member name="M:StreamJsonRpc.Reflection.JsonRpcResponseEventArgs.#ctor(StreamJsonRpc.Protocol.IJsonRpcMessageWithId)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Reflection.JsonRpcResponseEventArgs" /> class.
</summary>
<param name="message">The message the event is regarding.</param>
</member>
<member name="P:StreamJsonRpc.Reflection.JsonRpcResponseEventArgs.IsSuccessfulResponse">
<summary>
Gets a value indicating whether the response is a result (as opposed to an error).
</summary>
</member>
<member name="T:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker">
<summary>
Assists <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> implementations with supporting marshaling <see cref="T:System.IO.Pipelines.IDuplexPipe" /> over JSON-RPC.
</summary>
<remarks>
Lifetime rules:
* The <see cref="T:System.IO.Pipelines.IDuplexPipe" /> always originates on the client and passed as an argument to the server.
Servers are not allowed to return <see cref="T:System.IO.Pipelines.IDuplexPipe" /> to clients because the server would have no feedback if the client dropped it, leaking resources.
* The client can only send an <see cref="T:System.IO.Pipelines.IDuplexPipe" /> in a request (that expects a response).
Notifications would not provide the client with feedback that the server dropped it, leaking resources.
* The client will immediately terminate the <see cref="T:System.IO.Pipelines.IDuplexPipe" /> if the server returns ANY error in response to the request, since the server may not be aware of the <see cref="T:System.IO.Pipelines.IDuplexPipe" />.
* The <see cref="T:System.IO.Pipelines.IDuplexPipe" /> will NOT be terminated when a successful response is received from the server. Client and server are expected to negotiate the end of the <see cref="T:System.IO.Pipelines.IDuplexPipe" /> themselves.
</remarks>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.formatterState">
<summary>
The formatter that owns this tracker.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.outboundRequestChannelMap">
<summary>
A map of outbound request IDs to channels that they included.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.inboundRequestChannelMap">
<summary>
A map of inbound request IDs to channels that they included.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.openOutboundChannels">
<summary>
The set of channels that have been opened but not yet closed to support outbound requests, keyed by their ID.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.openInboundChannels">
<summary>
The set of channels that have been opened but not yet closed to support inbound requests, keyed by their ID.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.isDisposed">
<summary>
Backing field for the <see cref="P:Microsoft.IDisposableObservable.IsDisposed" /> property.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.#ctor(StreamJsonRpc.JsonRpc,StreamJsonRpc.Reflection.IJsonRpcFormatterState)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker" /> class.
</summary>
<param name="jsonRpc">The <see cref="T:StreamJsonRpc.JsonRpc" /> instance that may be used to send or receive RPC messages related to <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />.</param>
<param name="formatterState">The formatter that owns this tracker.</param>
</member>
<member name="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.MultiplexingStream">
<summary>
Gets or sets the multiplexing stream used to create and accept channels.
</summary>
<remarks>
If this is <see langword="null" />, some public methods will throw <see cref="T:System.NotSupportedException" />.
</remarks>
</member>
<member name="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.Microsoft#IDisposableObservable#IsDisposed">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.RequestIdBeingSerialized">
<summary>
Gets the id of the request currently being serialized for use as a key in <see cref="F:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.outboundRequestChannelMap" />.
</summary>
</member>
<member name="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.RequestIdBeingDeserialized">
<summary>
Gets the ID of the request currently being deserialized for use as a key in <see cref="F:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.inboundRequestChannelMap" />.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetToken(System.IO.Pipelines.IDuplexPipe)">
<inheritdoc cref="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetULongToken(System.IO.Pipelines.IDuplexPipe)" />
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetULongToken(System.IO.Pipelines.IDuplexPipe)">
<summary>
Creates a token to represent an <see cref="T:System.IO.Pipelines.IDuplexPipe" /> as it is transmitted from the client to an RPC server as a method argument.
</summary>
<param name="duplexPipe">The client pipe that is to be shared with the RPC server. May be null.</param>
<returns>The token to use as the RPC method argument; or <see langword="null" /> if <paramref name="duplexPipe" /> was <see langword="null" />.</returns>
<exception cref="T:System.NotSupportedException">Thrown if no <see cref="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.MultiplexingStream" /> was provided to the constructor or when serializing a message without an ID property.</exception>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetToken(System.IO.Pipelines.PipeReader)">
<inheritdoc cref="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetULongToken(System.IO.Pipelines.PipeReader)" />
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetULongToken(System.IO.Pipelines.PipeReader)">
<summary>
Creates a token to represent a <see cref="T:System.IO.Pipelines.PipeReader" /> as it is transmitted from the client to an RPC server as a method argument.
</summary>
<param name="reader">The client pipe that is to be shared with the RPC server. May be null.</param>
<returns>The token to use as the RPC method argument; or <see langword="null" /> if <paramref name="reader" /> was <see langword="null" />.</returns>
<exception cref="T:System.NotSupportedException">Thrown if no <see cref="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.MultiplexingStream" /> was provided to the constructor or when serializing a message without an ID property.</exception>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetToken(System.IO.Pipelines.PipeWriter)">
<inheritdoc cref="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetULongToken(System.IO.Pipelines.PipeWriter)" />
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetULongToken(System.IO.Pipelines.PipeWriter)">
<summary>
Creates a token to represent a <see cref="T:System.IO.Pipelines.PipeWriter" /> as it is transmitted from the client to an RPC server as a method argument.
</summary>
<param name="writer">The client pipe that is to be shared with the RPC server. May be null.</param>
<returns>The token to use as the RPC method argument; or <see langword="null" /> if <paramref name="writer" /> was <see langword="null" />.</returns>
<exception cref="T:System.NotSupportedException">Thrown if no <see cref="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.MultiplexingStream" /> was provided to the constructor or when serializing a message without an ID property.</exception>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetPipe(System.Nullable{System.Int32})">
<inheritdoc cref="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetPipe(System.Nullable{System.UInt64})" />
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetPipe(System.Nullable{System.UInt64})">
<summary>
Creates an <see cref="T:System.IO.Pipelines.IDuplexPipe" /> from a given token as it is received at the RPC server as a method argument.
</summary>
<param name="token">The method argument, which was originally obtained by the client using the <see cref="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetToken(System.IO.Pipelines.IDuplexPipe)" /> method.</param>
<returns>The <see cref="T:System.IO.Pipelines.IDuplexPipe" /> from the token; or <see langword="null" /> if <paramref name="token" /> was <see langword="null" />.</returns>
<exception cref="T:System.InvalidOperationException">Thrown if the token does not match up with an out of band channel offered by the client.</exception>
<exception cref="T:System.NotSupportedException">Thrown if no <see cref="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.MultiplexingStream" /> was provided to the constructor.</exception>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetPipeReader(System.Nullable{System.Int32})">
<inheritdoc cref="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetPipeReader(System.Nullable{System.UInt64})" />
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetPipeReader(System.Nullable{System.UInt64})">
<summary>
Creates a <see cref="T:System.IO.Pipelines.PipeReader" /> from a given token as it is received at the RPC server as a method argument.
</summary>
<param name="token">The method argument, which was originally obtained by the client using the <see cref="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetToken(System.IO.Pipelines.IDuplexPipe)" /> method.</param>
<returns>The <see cref="T:System.IO.Pipelines.PipeReader" /> from the token; or <see langword="null" /> if <paramref name="token" /> was <see langword="null" />.</returns>
<exception cref="T:System.InvalidOperationException">Thrown if the token does not match up with an out of band channel offered by the client.</exception>
<exception cref="T:System.NotSupportedException">Thrown if no <see cref="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.MultiplexingStream" /> was provided to the constructor.</exception>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetPipeWriter(System.Nullable{System.Int32})">
<inheritdoc cref="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetPipeWriter(System.Nullable{System.UInt64})" />
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetPipeWriter(System.Nullable{System.UInt64})">
<summary>
Creates a <see cref="T:System.IO.Pipelines.PipeWriter" /> from a given token as it is received at the RPC server as a method argument.
</summary>
<param name="token">The method argument, which was originally obtained by the client using the <see cref="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetToken(System.IO.Pipelines.IDuplexPipe)" /> method.</param>
<returns>The <see cref="T:System.IO.Pipelines.PipeWriter" /> from the token; or <see langword="null" /> if <paramref name="token" /> was <see langword="null" />.</returns>
<exception cref="T:System.InvalidOperationException">Thrown if the token does not match up with an out of band channel offered by the client.</exception>
<exception cref="T:System.NotSupportedException">Thrown if no <see cref="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.MultiplexingStream" /> was provided to the constructor.</exception>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.Dispose">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.Dispose(System.Boolean)">
<summary>
Disposes managed and native resources held by this instance.
</summary>
<param name="disposing"><see langword="true" /> if being disposed; <see langword="false" /> if being finalized.</param>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.GetMultiplexingStreamOrThrow">
<summary>
Throws <see cref="T:System.NotSupportedException" /> if <see cref="P:StreamJsonRpc.Reflection.MessageFormatterDuplexPipeTracker.MultiplexingStream" /> is <see langword="null" />.
</summary>
</member>
<member name="T:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker">
<summary>
A helper class that <see cref="T:StreamJsonRpc.IJsonRpcMessageFormatter" /> implementations may use to support <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> return values from RPC methods.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.TokenPropertyName">
<summary>
The name of the string property that carries the handle for the enumerable.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.ValuesPropertyName">
<summary>
The name of the JSON array property that contains the values.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.FinishedPropertyName">
<summary>
The name of the boolean property that indicates whether the last value has been returned to the consumer.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.generatorTokensByRequestId">
<summary>
Dictionary used to map the outbound request id to their progress info so that the progress objects are cleaned after getting the final response.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.#ctor(StreamJsonRpc.JsonRpc,StreamJsonRpc.Reflection.IJsonRpcFormatterState)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker" /> class.
</summary>
<param name="jsonRpc">The <see cref="T:StreamJsonRpc.JsonRpc" /> instance that may be used to send or receive RPC messages related to <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />.</param>
<param name="formatterState">The formatter that owns this tracker.</param>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.CanSerialize(System.Type)">
<summary>
Checks if a given <see cref="T:System.Type" /> implements <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />.
</summary>
<param name="objectType">The type which may implement <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />.</param>
<returns>true if given <see cref="T:System.Type" /> implements <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />; otherwise, false.</returns>
<devremarks>
We use <see langword="int" /> as a generic type argument in this because what we use doesn't matter, but we must use *something*.
</devremarks>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.CanDeserialize(System.Type)">
<summary>
Checks if a given <see cref="T:System.Type" /> is exactly some closed generic type based on <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />.
</summary>
<param name="objectType">The type which may be <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />.</param>
<returns>true if given <see cref="T:System.Type" /> is <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />; otherwise, false.</returns>
<devremarks>
We use <see langword="int" /> as a generic type argument in this because what we use doesn't matter, but we must use *something*.
</devremarks>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.GetToken``1(System.Collections.Generic.IAsyncEnumerable{``0})">
<summary>
Used by the generator to assign a handle to the given <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />.
</summary>
<typeparam name="T">The type of value that is produced by the enumerable.</typeparam>
<param name="enumerable">The enumerable to assign a handle to.</param>
<returns>The handle that was assigned.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.CreateEnumerableProxy``1(System.Object,System.Collections.Generic.IReadOnlyList{``0})">
<summary>
Used by the consumer to construct a proxy that implements <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" />
and gets all its values from a remote generator.
</summary>
<typeparam name="T">The type of value that is produced by the enumerable.</typeparam>
<param name="handle">The handle specified by the generator that is used to obtain more values or dispose of the enumerator. May be <see langword="null" /> to indicate there will be no more values.</param>
<param name="prefetchedItems">The list of items that are included with the enumerable handle.</param>
<returns>The enumerator.</returns>
</member>
<member name="T:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.AsyncEnumerableProxy`1">
<summary>
Provides the <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> instance that is used by a consumer.
</summary>
<typeparam name="T">The type of value produced by the enumerator.</typeparam>
</member>
<member name="T:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.AsyncEnumerableProxy`1.AsyncEnumeratorProxy">
<summary>
Provides the <see cref="T:System.Collections.Generic.IAsyncEnumerator`1" /> instance that is used by a consumer.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.AsyncEnumerableProxy`1.AsyncEnumeratorProxy.localCachedValues">
<summary>
A sequence of values that have already been received from the generator but not yet consumed.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterEnumerableTracker.AsyncEnumerableProxy`1.AsyncEnumeratorProxy.generatorReportsFinished">
<summary>
A value indicating whether the generator has reported that no more values will be forthcoming.
</summary>
</member>
<member name="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker">
<summary>
Class containing useful methods to help message formatters implement support for <see cref="T:System.IProgress`1" />.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressRequestSpecialMethod">
<summary>
Special method name for progress notification.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.requestProgressMap">
<summary>
Dictionary used to map the outbound request id to their progress info so that the progress objects are cleaned after getting the final response.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.progressMap">
<summary>
Dictionary used to map progress id token to its corresponding <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation" /> instance containing the progress object and the necessary fields to report the results.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.progressLock">
<summary>
Object used to lock the access to <see cref="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.requestProgressMap" /> and <see cref="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.progressMap" />.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.formatterState">
<summary>
State from the formatter that owns this tracker.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.nextProgressId">
<summary>
Gets or sets the the next id value to assign as token for the progress objects.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.#ctor(StreamJsonRpc.JsonRpc,StreamJsonRpc.Reflection.IJsonRpcFormatterState)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker" /> class.
</summary>
<param name="jsonRpc">The <see cref="T:StreamJsonRpc.JsonRpc" /> object that ultimately owns this tracker.</param>
<param name="formatterState">The formatter that owns this tracker.</param>
</member>
<member name="P:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.RequestIdBeingSerialized">
<summary>
Gets the id of the request currently being serialized so the converter can use it to create the request-progress map.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.FindIProgressOfT(System.Type)">
<summary>
Converts given <see cref="T:System.Type" /> to its <see cref="T:System.IProgress`1" /> type.
</summary>
<param name="objectType">The type which may implement <see cref="T:System.IProgress`1" />.</param>
<returns>The <see cref="T:System.IProgress`1" /> from given <see cref="T:System.Type" /> object, or <see langword="null" /> if no such interface was found in the given <paramref name="objectType" />.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.IsSupportedProgressType(System.Type)">
<summary>
Checks if a given <see cref="T:System.Type" /> implements <see cref="T:System.IProgress`1" />.
</summary>
<param name="objectType">The type which may implement <see cref="T:System.IProgress`1" />.</param>
<returns>true if given <see cref="T:System.Type" /> implements <see cref="T:System.IProgress`1" />; otherwise, false.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.CanSerialize(System.Type)">
<summary>
Checks if a given <see cref="T:System.Type" /> implements <see cref="T:System.IProgress`1" />.
</summary>
<param name="objectType">The type which may implement <see cref="T:System.IProgress`1" />.</param>
<returns>true if given <see cref="T:System.Type" /> implements <see cref="T:System.IProgress`1" />; otherwise, false.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.CanDeserialize(System.Type)">
<summary>
Checks if a given <see cref="T:System.Type" /> is a closed generic of <see cref="T:System.IProgress`1" />.
</summary>
<param name="objectType">The type which may be <see cref="T:System.IProgress`1" />.</param>
<returns>true if given <see cref="T:System.Type" /> is <see cref="T:System.IProgress`1" />; otherwise, false.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.GetTokenForProgress(System.Object)">
<summary>
Gets a <see cref="T:System.Int64" /> type token to use as replacement of an <see cref="T:System.Object" /> implementing <see cref="T:System.IProgress`1" /> in the JSON message.
</summary>
<param name="value">The object which should implement <see cref="T:System.IProgress`1" />.</param>
<returns>The assigned <see cref="T:System.Int64" /> typed token.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.TryGetProgressObject(System.Int64,StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation@)">
<summary>
Gets the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation" /> object associated with the given progress id.
</summary>
<param name="progressId">The key to obtain the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation" /> object from <see cref="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.progressMap" />.</param>
<param name="valueType">Output parameter to store the obtained <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation" /> object.</param>
<returns>true if the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation" /> object was found with the specified key; otherwise, false.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.CreateProgress``1(StreamJsonRpc.JsonRpc,System.Object)">
<inheritdoc cref="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.CreateProgress(StreamJsonRpc.JsonRpc,System.Object,System.Type,System.Boolean)" />
<remarks>
This overload creates an <see cref="T:System.IProgress`1" /> that does <em>not</em> use named arguments in its notifications.
</remarks>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.CreateProgress``1(StreamJsonRpc.JsonRpc,System.Object,System.Boolean)">
<inheritdoc cref="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.CreateProgress(StreamJsonRpc.JsonRpc,System.Object,System.Type,System.Boolean)" />
<typeparam name="T">The type of the value to be reported by <see cref="T:System.IProgress`1" />.</typeparam>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.CreateProgress(StreamJsonRpc.JsonRpc,System.Object,System.Type)">
<inheritdoc cref="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.CreateProgress(StreamJsonRpc.JsonRpc,System.Object,System.Type,System.Boolean)" />
<remarks>
This overload creates an <see cref="T:System.IProgress`1" /> that does <em>not</em> use named arguments in its notifications.
</remarks>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.CreateProgress(StreamJsonRpc.JsonRpc,System.Object,System.Type,System.Boolean)">
<summary>
Creates a new instance of <see cref="T:System.IProgress`1" /> to use on the receiving end of an RPC call.
</summary>
<param name="rpc">The <see cref="T:StreamJsonRpc.JsonRpc" /> instance used to send the <see cref="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressRequestSpecialMethod" /> notification.</param>
<param name="token">The token used to obtain the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation" /> instance from <see cref="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.progressMap" />.</param>
<param name="valueType">A generic type whose first generic type argument is to serve as the type argument for the created <see cref="T:System.IProgress`1" />.</param>
<param name="clientRequiresNamedArguments"><see langword="true" /> to issue $/progress notifications using named args; <see langword="false" /> to use positional arguments.</param>
</member>
<member name="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation">
<summary>
Class used to keep relevant information of an object that implements <see cref="T:System.IProgress`1" />.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation.reportMethod">
<summary>
Gets the <see cref="T:System.Reflection.MethodInfo" /> of <see cref="M:System.IProgress`1.Report(`0)" />.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation.progressObject">
<summary>
Gets the instance of the object implementing <see cref="T:System.IProgress`1" />.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation.#ctor(System.Object,System.Int64)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation" /> class.
</summary>
<param name="progressObject">The object implementing <see cref="T:System.IProgress`1" />.</param>
<param name="token">The token associated with this progress object.</param>
</member>
<member name="P:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation.ValueType">
<summary>
Gets the actual <see cref="T:System.Type" /> reported by <see cref="T:System.IProgress`1" />.
</summary>
</member>
<member name="P:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation.Token">
<summary>
Gets the token associated with this progress object.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation.InvokeReport(System.Object)">
<summary>
Invokes <see cref="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation.reportMethod" /> using the given typed value.
</summary>
<param name="typedValue">The value to be reported.</param>
</member>
<member name="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.JsonProgress`1">
<summary>
Class that implements <see cref="T:System.IProgress`1" /> and sends <see cref="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressRequestSpecialMethod" /> notification when reporting.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.JsonProgress`1.#ctor(StreamJsonRpc.JsonRpc,System.Object,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.JsonProgress`1" /> class.
</summary>
<param name="rpc">The <see cref="T:StreamJsonRpc.JsonRpc" /> instance used to send the <see cref="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressRequestSpecialMethod" /> notification.</param>
<param name="token">The progress token used to obtain the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressParamInformation" /> instance from <see cref="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.progressMap" />.</param>
<param name="useNamedArguments"><see langword="true" /> to use named arguments; <see langword="false" /> to use positional arguments.</param>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.JsonProgress`1.Report(`0)">
<summary>
Send a <see cref="F:StreamJsonRpc.Reflection.MessageFormatterProgressTracker.ProgressRequestSpecialMethod" /> norification using the stored <see cref="T:StreamJsonRpc.JsonRpc" /> instance.
</summary>
<param name="value">The typed value that will be send in the notification to be reported by the original <see cref="T:System.IProgress`1" /> instance.</param>
</member>
<member name="T:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker">
<summary>
Tracks objects that get marshaled using the general marshaling protocol.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.outboundRequestIdMarshalMap">
<summary>
A map of outbound request IDs to handles that are keys in the <see cref="F:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.marshaledObjects" /> dictionary.
</summary>
<remarks>
This collection is used to avoid memory leaks when marshaled objects have already been converted to a token for an outbound *request*
and the request ends up not being transmitted for any reason.
It will only contain the data until the request is either aborted or a response is received.
</remarks>
</member>
<member name="T:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.MarshalMode">
<summary>
Defines the values of the "__jsonrpc_marshaled" property in the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.MarshalToken" />.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.GetMarshalableOptionalInterfaces(System.Type)">
<summary>
Returns the cached list of <see cref="T:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute" /> applied to
<paramref name="declaredType" />.
</summary>
<param name="declaredType">The type to get attributes from.</param>
<returns>The list of <see cref="T:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute" /> applied to
<paramref name="declaredType" />.</returns>
<exception cref="T:System.NotSupportedException">If an invalid set of
<see cref="T:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute" /> attributes are applied to
<paramref name="declaredType" />. This could happen if
<see cref="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterface" /> or
<see cref="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterfaceCode" /> values are duplicated, or if an
optional interface is not marked with <see cref="T:StreamJsonRpc.RpcMarshalableAttribute" /> or it is not a valid marshalable
interface.</exception>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.GetToken(System.Object,StreamJsonRpc.JsonRpcTargetOptions,System.Type)">
<summary>
Prepares a local object to be marshaled over the wire.
</summary>
<param name="marshaledObject">The object to be exposed over RPC.</param>
<param name="options"><inheritdoc cref="M:StreamJsonRpc.RpcMarshaledContext`1.#ctor(`0,StreamJsonRpc.JsonRpcTargetOptions)" path="/param[@name='options']" /></param>
<param name="declaredType">The marshalable interface type of <paramref name="marshaledObject" /> as declared in the RPC contract.</param>
<returns>A token to be serialized so the remote party can invoke methods on the marshaled object.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.GetObject(System.Type,System.Nullable{StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.MarshalToken},StreamJsonRpc.JsonRpcProxyOptions)">
<summary>
Creates a proxy for a remote object.
</summary>
<param name="interfaceType">The interface the proxy must implement.</param>
<param name="token">The token received from the remote party that includes the handle to the remote object.</param>
<param name="options">The options to feed into proxy generation.</param>
<returns>The generated proxy, or <see langword="null" /> if <paramref name="token" /> is null.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.ValidateMarshalableInterface(System.Type)">
<summary>
Throws <see cref="T:System.NotSupportedException" /> if <paramref name="type" /> is not a valid marshalable interface.
This method doesn't validate that <paramref name="type" /> has the <see cref="T:StreamJsonRpc.RpcMarshalableAttribute" />
attribute.
</summary>
<param name="type">The interface <see cref="T:System.Type" /> to validate.</param>
<exception cref="T:System.NotSupportedException">When <paramref name="type" /> is not a valid marshalable interface: this
can happen if <paramref name="type" /> has properties, events or it is not disposable.</exception>
</member>
<member name="M:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.ReleaseMarshaledObject(System.Int64,System.Boolean)">
<summary>
Releases memory associated with marshaled objects.
</summary>
<param name="handle">The handle to the object as created by the <see cref="M:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.GetToken(System.Object,StreamJsonRpc.JsonRpcTargetOptions,System.Type)" /> method.</param>
<param name="ownedBySender"><see langword="true" /> if the <paramref name="handle" /> was created by (and thus the original object owned by) the remote party; <see langword="false" /> if the token and object was created locally.</param>
</member>
<member name="T:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.MarshalLifetime">
<summary>
Defines the values of the "lifetime" property in the <see cref="T:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.MarshalToken" />.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.MarshalLifetime.Call">
<summary>
The marshaled object may only be invoked until the containing RPC call completes. This value is only allowed when used within a JSON-RPC argument.
No explicit release using `$/releaseMarshaledObject` is required.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.MessageFormatterRpcMarshaledContextTracker.MarshalLifetime.Explicit">
<summary>
The marshaled object may be invoked until `$/releaseMarshaledObject` releases it. This is the default behavior when the `lifetime` property is omitted.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.RpcTargetInfo.targetRequestMethodToClrMethodMap">
<summary>
A collection of target objects and their map of clr method to <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> values.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.RpcTargetInfo.eventReceivers">
<summary>
A list of event handlers we've registered on target objects that define events. May be <see langword="null" /> if there are no handlers.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.RpcTargetInfo.localTargetObjectsToDispose">
<summary>
A lazily-initialized list of objects to dispose of when the JSON-RPC connection drops.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.RpcTargetInfo.GetJsonRpcMethodAttribute(System.String,System.ReadOnlySpan{System.Reflection.ParameterInfo})">
<summary>
Gets the <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> for a previously discovered RPC method, if there is one.
</summary>
<param name="methodName">The name of the method for which the attribute is sought.</param>
<param name="parameters">
The list of parameters found on the method, as they may be given to <see cref="M:StreamJsonRpc.Protocol.JsonRpcRequest.TryGetTypedArguments(System.ReadOnlySpan{System.Reflection.ParameterInfo},System.Span{System.Object})" />.
Note this list may omit some special parameters such as a trailing <see cref="T:System.Threading.CancellationToken" />.
</param>
</member>
<member name="M:StreamJsonRpc.Reflection.RpcTargetInfo.TryGetTargetMethod(StreamJsonRpc.Protocol.JsonRpcRequest,StreamJsonRpc.TargetMethod@)">
<summary>
Searches for a method to dispatch an incoming request to.
</summary>
<param name="request">The incoming request.</param>
<param name="targetMethod">Receives information about the search. Check <see cref="P:StreamJsonRpc.TargetMethod.IsFound" /> to see if an exact signature match was found.</param>
<returns>A value indicating whether the requested method name matches any that we accept. Use <see cref="P:StreamJsonRpc.TargetMethod.IsFound" /> on <paramref name="targetMethod" /> to confirm that an exact signature match is found.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.RpcTargetInfo.AddLocalRpcTarget(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions,System.Boolean)">
<summary>
Adds the specified target as possible object to invoke when incoming messages are received.
</summary>
<param name="exposingMembersOn">
The type whose members define the RPC accessible members of the <paramref name="target" /> object.
If this type is not an interface, only public members become invokable unless <see cref="P:StreamJsonRpc.JsonRpcTargetOptions.AllowNonPublicInvocation" /> is set to true on the <paramref name="options" /> argument.
</param>
<param name="target">Target to invoke when incoming messages are received.</param>
<param name="options">A set of customizations for how the target object is registered. If <see langword="null" />, default options will be used.</param>
<param name="requestRevertOption"><see langword="true" /> to receive an <see cref="T:System.IDisposable" /> that can remove the target object; <see langword="false" /> otherwise.</param>
<returns>An object that may be disposed of to revert the addition of the target object. Will be null if and only if <paramref name="requestRevertOption" /> is <see langword="false" />.</returns>
<remarks>
When multiple target objects are added, the first target with a method that matches a request is invoked.
</remarks>
</member>
<member name="M:StreamJsonRpc.Reflection.RpcTargetInfo.AddRpcInterfaceToTarget(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions,StreamJsonRpc.Reflection.RpcTargetInfo.RevertAddLocalRpcTarget)">
<summary>
Adds a new RPC interface to an existing target registering additional RPC methods.
</summary>
<param name="exposingMembersOn">The interface type whose members define the RPC accessible members of the <paramref name="target" /> object.</param>
<param name="target">Target to invoke when incoming messages are received.</param>
<param name="options">A set of customizations for how the target object is registered. If <see langword="null" />, default options will be used.</param>
<param name="revertAddLocalRpcTarget">An optional object that may be disposed of to revert the addition of the target object..</param>
</member>
<member name="M:StreamJsonRpc.Reflection.RpcTargetInfo.AddLocalRpcMethod(System.Reflection.MethodInfo,System.Object,StreamJsonRpc.JsonRpcMethodAttribute,System.Threading.SynchronizationContext)">
<summary>
Adds a handler for an RPC method with a given name.
</summary>
<param name="handler">
The method or delegate to invoke when a matching RPC message arrives.
This method may accept parameters from the incoming JSON-RPC message.
</param>
<param name="target">An instance of the type that defines <paramref name="handler" /> which should handle the invocation.</param>
<param name="methodRpcSettings">
A description for how this method should be treated.
It need not be an attribute that was actually applied to <paramref name="handler" />.
An attribute will *not* be discovered via reflection on the <paramref name="handler" />, even if this value is <see langword="null" />.
</param>
<param name="synchronizationContext">The <see cref="T:System.Threading.SynchronizationContext" /> to schedule the method invocation on instead of the default one specified by the <see cref="T:System.Threading.SynchronizationContext" /> property.</param>
</member>
<member name="M:StreamJsonRpc.Reflection.RpcTargetInfo.GetRequestMethodToClrMethodMap(System.Reflection.TypeInfo,System.Boolean,System.Boolean,System.Boolean)">
<summary>
Gets a dictionary which maps a request method name to its clr method name via <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> value.
</summary>
<param name="exposedMembersOnType">Type to reflect over and analyze its methods.</param>
<param name="allowNonPublicInvocation"><inheritdoc cref="P:StreamJsonRpc.JsonRpcTargetOptions.AllowNonPublicInvocation" path="/summary" /></param>
<param name="useSingleObjectParameterDeserialization"><inheritdoc cref="P:StreamJsonRpc.JsonRpcTargetOptions.UseSingleObjectParameterDeserialization" path="/summary" /></param>
<param name="clientRequiresNamedArguments"><inheritdoc cref="P:StreamJsonRpc.JsonRpcTargetOptions.ClientRequiresNamedArguments" path="/summary" /></param>
<returns>Dictionary which maps a request method name to its clr method name.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.RpcTargetInfo.GetEventInfos(System.Reflection.TypeInfo)">
<summary>
Given a type it will extract all events in the type hierarchy. It deals correctly with
interfaces. Note that it will return duplicates if they appear multiple times in the hierarchy.
</summary>
<param name="exposedMembersOnType">Type to reflect over and analyze its events.</param>
<returns>A list of EventInfos found.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.RpcTargetInfo.AddRpcInterfaceToTarget(System.Collections.Generic.IReadOnlyDictionary{System.String,System.Collections.Generic.List{StreamJsonRpc.MethodSignature}},System.Object,StreamJsonRpc.JsonRpcTargetOptions,StreamJsonRpc.Reflection.RpcTargetInfo.RevertAddLocalRpcTarget)">
<summary>
Adds a new RPC interface to an existing target registering RPC methods.
</summary>
<param name="mapping">The methods to bers of the <paramref name="target" /> object.</param>
<param name="target">Target to invoke when incoming messages are received.</param>
<param name="options">A set of customizations for how the target object is registered. If <see langword="null" />, default options will be used.</param>
<param name="revertAddLocalRpcTarget">An optional object that may be disposed of to revert the addition of the target object.</param>
</member>
<member name="M:StreamJsonRpc.Reflection.RpcTargetInfo.MethodNameMap.FindMethodAttribute(System.Reflection.MethodInfo)">
<summary>
Get the <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" />, which may appear on the method itself or the interface definition of the method where applicable.
</summary>
<param name="method">The method to search for the attribute.</param>
<returns>The attribute, if found.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.RpcTargetInfo.MethodNameMap.FindIgnoreAttribute(System.Reflection.MethodInfo)">
<summary>
Get the <see cref="T:StreamJsonRpc.JsonRpcIgnoreAttribute" />, which may appear on the method itself or the interface definition of the method where applicable.
</summary>
<param name="method">The method to search for the attribute.</param>
<returns>The attribute, if found.</returns>
</member>
<member name="T:StreamJsonRpc.Reflection.RpcTargetInfo.RevertAddLocalRpcTarget">
<summary>
A class whose disposal will revert certain effects of a prior call to <see cref="M:StreamJsonRpc.Reflection.RpcTargetInfo.AddLocalRpcTarget(System.Type,System.Object,StreamJsonRpc.JsonRpcTargetOptions,System.Boolean)" />.
</summary>
</member>
<member name="T:StreamJsonRpc.Reflection.TrackerHelpers`1">
<summary>
Helper methods for message formatter tracker classes.
</summary>
<typeparam name="TInterface">A generic interface. We only need the generic type definition, but since C# doesn't let us pass in open generic types, use <see cref="T:System.Int32" /> as a generic type argument.</typeparam>
</member>
<member name="F:StreamJsonRpc.Reflection.TrackerHelpers`1.TypeToImplementedInterfaceMap">
<summary>
Dictionary to record the calculation made in <see cref="M:StreamJsonRpc.Reflection.TrackerHelpers`1.FindInterfaceImplementedBy(System.Type)" /> to obtain the <typeparamref name="TInterface" /> type from a given <see cref="T:System.Type" />.
</summary>
</member>
<member name="F:StreamJsonRpc.Reflection.TrackerHelpers`1.InterfaceGenericTypeDefinition">
<summary>
Gets the generic type definition for whatever type parameter was given by <typeparamref name="TInterface" />.
</summary>
</member>
<member name="M:StreamJsonRpc.Reflection.TrackerHelpers`1.FindInterfaceImplementedBy(System.Type)">
<summary>
Extracts some interface from a given <see cref="T:System.Type" />, if it is implemented.
</summary>
<param name="objectType">The type which may implement <typeparamref name="TInterface" />.</param>
<returns>The <typeparamref name="TInterface" /> type from given <see cref="T:System.Type" /> object, or <see langword="null" /> if no such interface was found in the given <paramref name="objectType" />.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.TrackerHelpers`1.CanSerialize(System.Type)">
<summary>
Checks if a given <see cref="T:System.Type" /> implements <typeparamref name="TInterface" />.
</summary>
<param name="objectType">The type which may implement <typeparamref name="TInterface" />.</param>
<returns>true if given <see cref="T:System.Type" /> implements <typeparamref name="TInterface" />; otherwise, false.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.TrackerHelpers`1.CanDeserialize(System.Type)">
<summary>
Checks whether the given type is an interface compatible with <typeparamref name="TInterface" />.
</summary>
<param name="objectType">The type that may be deserialized.</param>
<returns><see langword="true" /> if <paramref name="objectType" /> is a closed generic form of <typeparamref name="TInterface" />; <see langword="false" /> otherwise.</returns>
</member>
<member name="M:StreamJsonRpc.Reflection.TrackerHelpers`1.IsActualInterfaceMatch(System.Type)">
<summary>
Checks whether the given type is an interface compatible with <typeparamref name="TInterface" />.
</summary>
<param name="objectType">The type that may be deserialized.</param>
<returns><see langword="true" /> if <paramref name="objectType" /> is a closed generic form of <typeparamref name="TInterface" />; <see langword="false" /> otherwise.</returns>
</member>
<member name="T:StreamJsonRpc.JsonRpcIgnoreAttribute">
<summary>
Attribute which identifies methods that should <em>not</em> be invokable over RPC.
</summary>
<remarks>
<para>When adding an RPC target object via <see cref="M:StreamJsonRpc.JsonRpc.AddLocalRpcTarget(System.Object)" /> or other APIs,
all public methods on the object default to being exposed to invocation by the client.
When <see cref="P:StreamJsonRpc.JsonRpcTargetOptions.AllowNonPublicInvocation" /> is set, even more methods are exposed.
Applying this attribute to any method will ensure it can never be invoked directly by the RPC client.</para>
<para>If <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> and <see cref="T:StreamJsonRpc.JsonRpcIgnoreAttribute" /> are applied to the same method,
an exception will be thrown at the time of adding the object as an RPC target.</para>
</remarks>
</member>
<member name="T:StreamJsonRpc.JsonRpcMethodAttribute">
<summary>
Attribute which changes the name by which this method can be invoked over JSON-RPC.
If applied on a method, the method's CLR name can no longer be used for remote invocation.
</summary>
<remarks>
This attribute should be used when rpc message method names can be different from the actual CLR method names.
Useful in cases where rpc message method names contain illegal characters for CLR method names, i.e. "text/OnDocumentChanged".
If methods are overloaded, each overload must define its own <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> with all the same values.
Conflicts will result in error being thrown during <see cref="T:StreamJsonRpc.JsonRpc" /> construction.
If methods are overridden, the base class can define a <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> and derived classes will inherit the attribute.
If derived class and base class have conflicting <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> values for a method, an error will be thrown during <see cref="T:StreamJsonRpc.JsonRpc" /> construction.
</remarks>
</member>
<member name="M:StreamJsonRpc.JsonRpcMethodAttribute.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> class.
</summary>
<param name="name">Replacement name of a method.</param>
</member>
<member name="M:StreamJsonRpc.JsonRpcMethodAttribute.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.JsonRpcMethodAttribute" /> class.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpcMethodAttribute.Name">
<summary>
Gets the public RPC name by which this method will be invoked.
</summary>
<value>May be <see langword="null" /> if the method's name has not been overridden.</value>
</member>
<member name="P:StreamJsonRpc.JsonRpcMethodAttribute.UseSingleObjectParameterDeserialization">
<summary>
Gets or sets a value indicating whether JSON-RPC named arguments should all be deserialized into the RPC method's first parameter.
</summary>
</member>
<member name="P:StreamJsonRpc.JsonRpcMethodAttribute.ClientRequiresNamedArguments">
<summary>
Gets or sets a value indicating whether JSON-RPC named arguments should be used in callbacks sent back to the client.
</summary>
<value>The default value is <see langword="false" />.</value>
<remarks>
An example of impact of this setting is when the client sends an <see cref="T:System.IProgress`1" /> argument and this server
will call <see cref="M:System.IProgress`1.Report(`0)" /> on that argument.
The notification that the server then sends back to the client may use positional or named arguments in that notification.
Named arguments are used if and only if this property is set to <see langword="true" />.
</remarks>
</member>
<member name="F:StreamJsonRpc.MethodSignature.parameters">
<summary>
Backing field for the lazily initialized <see cref="P:StreamJsonRpc.MethodSignature.Parameters" /> property.
</summary>
</member>
<member name="M:StreamJsonRpc.MethodSignature.Equals(StreamJsonRpc.MethodSignature)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MethodSignature.Equals(System.Object)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MethodSignature.GetHashCode">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MethodSignature.ToString">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MethodSignatureAndTarget.Equals(System.Object)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MethodSignatureAndTarget.Equals(StreamJsonRpc.MethodSignatureAndTarget)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MethodSignatureAndTarget.GetHashCode">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.MethodSignatureAndTarget.ToString">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.RpcMarshalableAttribute">
<summary>
Designates an interface that is used in an RPC contract to marshal the object so the receiver can invoke remote methods on it instead of serializing the object to send its data to the remote end.
</summary>
<remarks>
<see href="https://github.com/microsoft/vs-streamjsonrpc/blob/main/doc/rpc_marshalable_objects.md">Learn more about marshable interfaces</see>.
</remarks>
</member>
<member name="T:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute">
<summary>
Attribute to be used on an interface marked with <see cref="T:StreamJsonRpc.RpcMarshalableAttribute" /> to indicate that the
marshalable object may also implement the interface <see cref="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterface" />.
</summary>
<remarks><para>
When an object that implements <see cref="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterface" /> is marshaled as its base interface marked with
<see cref="T:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute" />, <see cref="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterfaceCode" /> is included in the
StreamJsonRpc message allowing the creation of a proxy which also implements <see cref="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterface" />.
</para><para>
If a message is received containing no <see cref="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterfaceCode" /> values, for a marshalable interface that
has known optional interfaces, a proxy will be created using the base interface. Unknown
<see cref="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterfaceCode" /> values will be ignored when creating the proxy.
</para><para>
<see cref="T:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute" /> is honored only when an object is marshaled through an RPC
method that used exactly the interface the attribute is assigned to:
<see cref="T:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute" /> attributes applied to interfaces extending or extended from
the one the attribute is assigned to are ignored.
</para></remarks>
</member>
<member name="M:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.#ctor(System.Int32,System.Type)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute" /> class.
</summary>
<param name="optionalInterfaceCode">The code to be serialized to specify that the marshaled object proxy should
be generated implementing the <paramref name="optionalInterface" /> interface.
<paramref name="optionalInterfaceCode" /> values must be unique across the different optional interfaces of the
type this attribute is applied to. Because <paramref name="optionalInterfaceCode" /> is serialized when
transmitting a marshaled object, its value should never be reassigned to a different optional interface when
updating RPC interfaces.</param>
<param name="optionalInterface">The <see cref="T:System.Type" /> of the known optional interface that the marshalable
object may implement.</param>
</member>
<member name="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterface">
<summary>
Gets the <see cref="T:System.Type" /> of the known optional interface that the marshalable object may implement.
</summary>
</member>
<member name="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterfaceCode">
<summary>
Gets the code to be serialized to specify that the marshaled object proxy should be generated implementing the
<see cref="P:StreamJsonRpc.RpcMarshalableOptionalInterfaceAttribute.OptionalInterface" /> interface.
</summary>
</member>
<member name="T:StreamJsonRpc.TargetMethod">
<summary>
Represents the dispatch target of an incoming request.
</summary>
</member>
<member name="F:StreamJsonRpc.TargetMethod.errorMessages">
<summary>
A collection of error messages. May be null until the first message is added.
</summary>
</member>
<member name="P:StreamJsonRpc.TargetMethod.ArgumentDeserializationFailures">
<summary>
Gets all the exceptions thrown while trying to deserialize arguments to candidate parameter types.
</summary>
</member>
<member name="M:StreamJsonRpc.TargetMethod.ToString">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.RequestId">
<summary>
Represents the ID of a request, whether it is a number or a string.
</summary>
</member>
<member name="M:StreamJsonRpc.RequestId.#ctor(System.Int64)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RequestId" /> struct.
</summary>
<param name="id">The ID of the request.</param>
</member>
<member name="M:StreamJsonRpc.RequestId.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RequestId" /> struct.
</summary>
<param name="id">The ID of the request.</param>
</member>
<member name="P:StreamJsonRpc.RequestId.NotSpecified">
<summary>
Gets an empty (absent) ID.
</summary>
</member>
<member name="P:StreamJsonRpc.RequestId.Null">
<summary>
Gets the special value for an explicitly specified <see langword="null" /> request ID.
</summary>
</member>
<member name="P:StreamJsonRpc.RequestId.Number">
<summary>
Gets the ID if it is a number.
</summary>
</member>
<member name="P:StreamJsonRpc.RequestId.String">
<summary>
Gets the ID if it is a string.
</summary>
</member>
<member name="P:StreamJsonRpc.RequestId.IsNull">
<summary>
Gets a value indicating whether this request ID is explicitly specified as the special "null" value.
</summary>
</member>
<member name="P:StreamJsonRpc.RequestId.IsEmpty">
<summary>
Gets a value indicating whether the request ID was not specified (i.e. no string, number or null was given).
</summary>
</member>
<member name="P:StreamJsonRpc.RequestId.ObjectValue">
<summary>
Gets the ID as an object (whether it is a <see cref="T:System.Int64" />, a <see cref="T:System.String" /> or null).
</summary>
</member>
<member name="P:StreamJsonRpc.RequestId.NumberIfPossibleForEvent">
<summary>
Gets the ID if it is a number, or -1.
</summary>
</member>
<member name="M:StreamJsonRpc.RequestId.op_Equality(StreamJsonRpc.RequestId,StreamJsonRpc.RequestId)">
<summary>
Tests equality between two <see cref="T:StreamJsonRpc.RequestId" /> values.
</summary>
<param name="first">The first value.</param>
<param name="second">The second value.</param>
<returns><see langword="true" /> if the values are equal; <see langword="false" /> otherwise.</returns>
</member>
<member name="M:StreamJsonRpc.RequestId.op_Inequality(StreamJsonRpc.RequestId,StreamJsonRpc.RequestId)">
<summary>
Tests inequality between two <see cref="T:StreamJsonRpc.RequestId" /> values.
</summary>
<param name="first">The first value.</param>
<param name="second">The second value.</param>
<returns><see langword="false" /> if the values are equal; <see langword="true" /> otherwise.</returns>
</member>
<member name="M:StreamJsonRpc.RequestId.Equals(StreamJsonRpc.RequestId)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.RequestId.Equals(System.Object)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.RequestId.GetHashCode">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.RequestId.ToString">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.AddRpcInterfaceToTargetParameterNotInterface">
<summary>
Looks up a localized string similar to AddRpcInterfaceToTarget parameter is not an interface.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.BothReadableWritableAreNull">
<summary>
Looks up a localized string similar to Both readable and writable are null..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.CancellationTokenMustBeLastParameter">
<summary>
Looks up a localized string similar to A CancellationToken is only allowed as the last parameter..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.CannotBeCalledAfterGetAsyncEnumerator">
<summary>
Looks up a localized string similar to This cannot be done after GetAsyncEnumerator has already been called..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ClientProxyTypeArgumentMustBeAnInterface">
<summary>
Looks up a localized string similar to "{0}" is not an interface..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ConflictingMethodAttributeValue">
<summary>
Looks up a localized string similar to .NET methods '{0}' and '{1}' cannot both map to the same request method name: '{2}'..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ConflictingMethodNameAttribute">
<summary>
Looks up a localized string similar to All overloads and overrides of the '{0}' method must share a common value for {1}.{2}..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ConflictMethodSignatureAlreadyRegistered">
<summary>
Looks up a localized string similar to A method with the same name and equivalent parameters has already been registered..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ConnectionDropped">
<summary>
Looks up a localized string similar to The JSON-RPC connection with the remote party was lost before the request could complete..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.DroppingRequestDueToNoTargetObject">
<summary>
Looks up a localized string similar to Got a request to execute '{0}' but have no callback object. Dropping the request..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ElementsAlreadyPrefetched">
<summary>
Looks up a localized string similar to This enumeration has already prefetched elements once..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.EnumValueNotRecognized">
<summary>
Looks up a localized string similar to The value {0} is not among the recognized or supported members of the enum type..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ErrorWritingJsonRpcMessage">
<summary>
Looks up a localized string similar to Error writing JSON RPC Message: {0}: {1}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ErrorWritingJsonRpcResult">
<summary>
Looks up a localized string similar to Error writing JSON RPC Result: {0}: {1}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.FailureDeserializingJsonRpc">
<summary>
Looks up a localized string similar to Failure deserializing incoming JSON RPC '{0}': {1}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.FailureDeserializingRpcArgument">
<summary>
Looks up a localized string similar to Deserializing JSON-RPC argument with name "{0}" and position {1} to type "{2}" failed: {3}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.FailureDeserializingRpcResult">
<summary>
Looks up a localized string similar to Deserializing JSON-RPC result to type {0} failed with {1}: {2}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.FatalExceptionWasThrown">
<summary>
Looks up a localized string similar to A fatal exception was thrown from the server method {0}: {1}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.FillBufferFirst">
<summary>
Looks up a localized string similar to The buffer is empty. Call the async method to fill it first..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.FindIProgressOfTError">
<summary>
Looks up a localized string similar to Unable to cast given Type to IProgress&lt;T&gt;.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.FormatterConfigurationLockedAfterJsonRpcAssigned">
<summary>
Looks up a localized string similar to The configuration is locked because this formatter has already been associated with a JsonRpc instance..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.HeaderContentLengthNotParseable">
<summary>
Looks up a localized string similar to Failed parsing Content-Length header into a positive integer..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.HeaderValueTooLarge">
<summary>
Looks up a localized string similar to The size of the message header exceeds the maximum supported size..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.InboundMessageOnly">
<summary>
Looks up a localized string similar to This operation is only appropriate for inbound messages..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.InvalidAfterListenHasStarted">
<summary>
Looks up a localized string similar to This operation is not allowed after listening for messages has started..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.InvalidBeforeListenHasStarted">
<summary>
Looks up a localized string similar to This operation is not allowed before listening for messages has started..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.JsonRpcCannotBeNull">
<summary>
Looks up a localized string similar to JSON RPC must not be null..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.JsonRpcMethodAndIgnoreAttributesFound">
<summary>
Looks up a localized string similar to Conflicting JsonRpcMethodAttribute and JsonRpcIgnoreAttribute found on the same method: {0}..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.MarshalableInterfaceHasEvents">
<summary>
Looks up a localized string similar to {0} is not a valid marshaled interface because it has events..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.MarshalableInterfaceHasProperties">
<summary>
Looks up a localized string similar to {0} is not a valid marshaled interface because it has properties..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.MarshalableInterfaceNotDisposable">
<summary>
Looks up a localized string similar to {0} is not a valid marshaled interface because doesn't extend IDisposable..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.MarshaledObjectInNotificationError">
<summary>
Looks up a localized string similar to This tracked object cannot be included in a notification. Only messages including an "id" property are supported..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.MarshaledObjectInResponseOrNotificationError">
<summary>
Looks up a localized string similar to This tracked object should not be part of any response or notification..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.MethodHasRefOrOutParameters">
<summary>
Looks up a localized string similar to {0} has ref or out parameter(s), which is not supported.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.MethodParameterCountDoesNotMatch">
<summary>
Looks up a localized string similar to {0} parameter(s) (excluding any CancellationToken): {1}, but the request supplies {2}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.MethodParametersNotCompatible">
<summary>
Looks up a localized string similar to {0} parameters are not compatible with the arguments provided in the request..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.MustBeListening">
<summary>
Looks up a localized string similar to Listening must be started first..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.MustNotBeListening">
<summary>
Looks up a localized string similar to This cannot be done after listening has started..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.NonNegativeIntegerRequired">
<summary>
Looks up a localized string similar to A non-negative integer is required..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.NotSupportedWithoutMultiplexingStream">
<summary>
Looks up a localized string similar to Out of band streams/pipes are not supported in this configuration. Have you set a MultiplexingStream on the formatter?.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.OutboundMessageOnly">
<summary>
Looks up a localized string similar to This operation is only appropriate for outbound messages..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ParameterNotObject">
<summary>
Looks up a localized string similar to Parameter is not in the form of a single object.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ParameterObjectsNotSupportedInJsonRpc10">
<summary>
Looks up a localized string similar to JSON-RPC 1.0 does not support named arguments (parameters passed within an object). Use positional arguments (parameter arrays) or set protocol version to 2.0..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.PositiveIntegerRequired">
<summary>
Looks up a localized string similar to A positive integer is required..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ReachedEndOfStream">
<summary>
Looks up a localized string similar to Reached end of stream..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ReadingJsonRpcStreamFailed">
<summary>
Looks up a localized string similar to Reading JSON RPC from the stream failed with {0}: {1}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.RelayAlreadySet">
<summary>
Looks up a localized string similar to Relay connection has already been established..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.RequiredArgumentMissing">
<summary>
Looks up a localized string similar to An argument was not supplied for a required parameter..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ReservedPropertyName">
<summary>
Looks up a localized string similar to This property name is reserved by the JSON-RPC spec or this library..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ResponseIsNotError">
<summary>
Looks up a localized string similar to Response is not error..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ResponseSerializationFailure">
<summary>
Looks up a localized string similar to Failed to serialize the response..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.ResponseUnexpectedFormat">
<summary>
Looks up a localized string similar to Response is in an unexpected format. Only error and result are supported: {0}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.RpcMarshalableDuplicatedOptionalInterface">
<summary>
Looks up a localized string similar to Optional interface declarations should be unique. {0} has the same optional interface declared multiple times..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.RpcMarshalableDuplicatedOptionalInterfaceCode">
<summary>
Looks up a localized string similar to Optional interface codes should be unique. {0} has the same optional interface code used multiple times..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.RpcMarshalableOptionalInterfaceMustBeMarshalable">
<summary>
Looks up a localized string similar to {0} is not marked with the RpcMarshalable attribute..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.RpcMethodNameNotFound">
<summary>
Looks up a localized string similar to No method by the name '{0}' is found..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.SerializationFailure">
<summary>
Looks up a localized string similar to An error occured during serialization..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.StreamDisposed">
<summary>
Looks up a localized string similar to Stream has been disposed.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.StreamMustBeReadable">
<summary>
Looks up a localized string similar to The stream must be readable..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.StreamMustBeWriteable">
<summary>
Looks up a localized string similar to The stream must be writeable..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.SumOfTwoParametersExceedsArrayLength">
<summary>
Looks up a localized string similar to The {0} and {1} parameters exceed length of array..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.TargetObjectAndMethodStaticFlagMismatch">
<summary>
Looks up a localized string similar to A target object should be supplied if and only if the method is not static..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.TaskNotCompleted">
<summary>
Looks up a localized string similar to The task is not completed..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.TaskWasCancelled">
<summary>
Looks up a localized string similar to The task was cancelled..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.TextEncoderNotApplicable">
<summary>
Looks up a localized string similar to Text encoding is not supported because the formatter "{0}" does not implement "{1}"..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.TypedArgumentsLengthMismatch">
<summary>
Looks up a localized string similar to The length of this list must equal the length of the arguments list..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnableToFindMethod">
<summary>
Looks up a localized string similar to Unable to find method '{0}/{1}' on {2} for the following reasons: {3}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnexpectedErrorProcessingJsonRpc">
<summary>
Looks up a localized string similar to Unexpected error processing JSON-RPC message: {0}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnexpectedNullValueInMap">
<summary>
Looks up a localized string similar to Unexpected null key encountered while deserializing map..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnexpectedResponseWithNoMatchingRequest">
<summary>
Looks up a localized string similar to A response was received without a request having been sent..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnexpectedTokenReadingHeader">
<summary>
Looks up a localized string similar to Unexpected token '{0}' while parsing header..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnknownTokenToMarshaledObject">
<summary>
Looks up a localized string similar to This remote object no longer exists..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnrecognizableMessage">
<summary>
Looks up a localized string similar to Unable to recognize incoming message as one the JSON-RPC 2.0 defined message types..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnrecognizedIncomingJsonRpc">
<summary>
Looks up a localized string similar to Incoming JSON-RPC message did not conform to a recognized pattern..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnsupportedEventHandlerTypeOnClientProxyInterface">
<summary>
Looks up a localized string similar to Unsupported event handler type on "{0}". Only EventHandler and EventHandler&lt;T&gt; are supported..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnsupportedGenericMethodsOnClientProxyInterface">
<summary>
Looks up a localized string similar to Generic methods are not supported..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnsupportedJsonRpcProtocolVersion">
<summary>
Looks up a localized string similar to Unsupported JSON-RPC protocol version {0}. The supported protocol versions are: {1}.
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnsupportedMethodReturnTypeOnClientProxyInterface">
<summary>
Looks up a localized string similar to Method "{0}" has unsupported return type "{1}". Only Task-returning methods are supported..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UnsupportedPropertiesOnClientProxyInterface">
<summary>
Looks up a localized string similar to Properties are not supported for service interfaces..
</summary>
</member>
<member name="P:StreamJsonRpc.Resources.UsableOnceOnly">
<summary>
Looks up a localized string similar to This operation can only be performed once on this object..
</summary>
</member>
<member name="T:StreamJsonRpc.RpcMarshaledContext`1">
<inheritdoc cref="T:StreamJsonRpc.IRpcMarshaledContext`1" />
</member>
<member name="M:StreamJsonRpc.RpcMarshaledContext`1.#ctor(`0,StreamJsonRpc.JsonRpcTargetOptions)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.RpcMarshaledContext`1" /> class.
</summary>
<param name="value">The value that should be used in the object graph to be sent over RPC, to trigger marshaling.</param>
<param name="options">The <see cref="P:StreamJsonRpc.RpcMarshaledContext`1.JsonRpcTargetOptions" /> to use when adding this object as an RPC target.</param>
</member>
<member name="E:StreamJsonRpc.RpcMarshaledContext`1.Disposed">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.RpcMarshaledContext`1.Proxy">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.RpcMarshaledContext`1.IsDisposed">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.RpcMarshaledContext`1.JsonRpcTargetOptions">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.RpcMarshaledContext`1.Dispose">
<summary>
Immediately terminates the marshaling relationship.
This releases resources allocated to facilitating the marshaling of the object
and prevents any further invocations of the object by the remote party.
If the underlying object implements <see cref="T:System.IDisposable" /> then its
<see cref="M:System.IDisposable.Dispose" /> method is also invoked.
</summary>
</member>
<member name="T:StreamJsonRpc.SkipClrVisibilityChecks">
<summary>
Gives a dynamic assembly the ability to skip CLR visibility checks,
allowing the assembly to access private members of another assembly.
</summary>
</member>
<member name="F:StreamJsonRpc.SkipClrVisibilityChecks.AttributeBaseClassCtor">
<summary>
The <see cref="M:System.Attribute.#ctor" /> constructor.
</summary>
</member>
<member name="F:StreamJsonRpc.SkipClrVisibilityChecks.AttributeUsageCtor">
<summary>
The <see cref="M:System.AttributeUsageAttribute.#ctor(System.AttributeTargets)" /> constructor.
</summary>
</member>
<member name="F:StreamJsonRpc.SkipClrVisibilityChecks.AttributeUsageAllowMultipleProperty">
<summary>
The <see cref="P:System.AttributeUsageAttribute.AllowMultiple" /> property.
</summary>
</member>
<member name="F:StreamJsonRpc.SkipClrVisibilityChecks.assemblyBuilder">
<summary>
The assembly builder that is constructing the dynamic assembly.
</summary>
</member>
<member name="F:StreamJsonRpc.SkipClrVisibilityChecks.moduleBuilder">
<summary>
The module builder for the default module of the <see cref="F:StreamJsonRpc.SkipClrVisibilityChecks.assemblyBuilder" />.
This is where the special attribute will be defined.
</summary>
</member>
<member name="F:StreamJsonRpc.SkipClrVisibilityChecks.attributedAssemblyNames">
<summary>
The set of assemblies that already have visibility checks skipped for.
</summary>
</member>
<member name="F:StreamJsonRpc.SkipClrVisibilityChecks.magicAttributeCtor">
<summary>
The constructor on the special attribute to reference for each skipped assembly.
</summary>
</member>
<member name="M:StreamJsonRpc.SkipClrVisibilityChecks.#ctor(System.Reflection.Emit.AssemblyBuilder,System.Reflection.Emit.ModuleBuilder)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.SkipClrVisibilityChecks" /> class.
</summary>
<param name="assemblyBuilder">The builder for the dynamic assembly.</param>
<param name="moduleBuilder">The builder for the default module defined by <see cref="F:StreamJsonRpc.SkipClrVisibilityChecks.assemblyBuilder" />.</param>
</member>
<member name="M:StreamJsonRpc.SkipClrVisibilityChecks.GetSkipVisibilityChecksRequirements(System.Reflection.TypeInfo)">
<summary>
Gets the set of assemblies that a generated assembly must be granted the ability to skip visiblity checks for
in order to access the specified type.
</summary>
<param name="typeInfo">The type which may be internal.</param>
<returns>The set of names of assemblies to skip visibility checks for.</returns>
</member>
<member name="M:StreamJsonRpc.SkipClrVisibilityChecks.SkipVisibilityChecksFor(System.Collections.Generic.IEnumerable{System.Reflection.AssemblyName})">
<summary>
Add attributes to a dynamic assembly so that the CLR will skip visibility checks
for the assemblies with the specified names.
</summary>
<param name="assemblyNames">The names of the assemblies to skip visibility checks for.</param>
</member>
<member name="M:StreamJsonRpc.SkipClrVisibilityChecks.SkipVisibilityChecksFor(System.Reflection.AssemblyName)">
<summary>
Add an attribute to a dynamic assembly so that the CLR will skip visibility checks
for the assembly with the specified name.
</summary>
<param name="assemblyName">The name of the assembly to skip visibility checks for.</param>
</member>
<member name="M:StreamJsonRpc.SkipClrVisibilityChecks.GetMagicAttributeCtor">
<summary>
Gets the constructor to the IgnoresAccessChecksToAttribute, generating the attribute if necessary.
</summary>
<returns>The constructor to the IgnoresAccessChecksToAttribute.</returns>
</member>
<member name="M:StreamJsonRpc.SkipClrVisibilityChecks.EmitMagicAttribute">
<summary>
Defines the special IgnoresAccessChecksToAttribute type in the <see cref="F:StreamJsonRpc.SkipClrVisibilityChecks.moduleBuilder" />.
</summary>
<returns>The generated attribute type.</returns>
</member>
<member name="F:StreamJsonRpc.StandardCancellationStrategy.CancelRequestSpecialMethod">
<summary>
The JSON-RPC method name used to send/receive cancellation requests.
</summary>
</member>
<member name="F:StreamJsonRpc.StandardCancellationStrategy.CancelInboundRequestMethodInfo">
<summary>
The <see cref="T:System.Reflection.MethodInfo" /> for the <see cref="M:StreamJsonRpc.StandardCancellationStrategy.CancelInboundRequest(StreamJsonRpc.RequestId)" /> method.
</summary>
</member>
<member name="F:StreamJsonRpc.StandardCancellationStrategy.inboundCancellationSources">
<summary>
A map of id's from inbound calls that have not yet completed and may be canceled,
to their <see cref="T:System.Threading.CancellationTokenSource" /> instances.
</summary>
</member>
<member name="M:StreamJsonRpc.StandardCancellationStrategy.#ctor(StreamJsonRpc.JsonRpc)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.StandardCancellationStrategy" /> class.
</summary>
<param name="jsonRpc">The <see cref="P:StreamJsonRpc.StandardCancellationStrategy.JsonRpc" /> connection that this strategy is associated with.</param>
</member>
<member name="P:StreamJsonRpc.StandardCancellationStrategy.JsonRpc">
<summary>
Gets the <see cref="P:StreamJsonRpc.StandardCancellationStrategy.JsonRpc" /> connection that this strategy is associated with.
</summary>
</member>
<member name="M:StreamJsonRpc.StandardCancellationStrategy.IncomingRequestStarted(StreamJsonRpc.RequestId,System.Threading.CancellationTokenSource)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.StandardCancellationStrategy.IncomingRequestEnded(StreamJsonRpc.RequestId)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.StandardCancellationStrategy.CancelOutboundRequest(StreamJsonRpc.RequestId)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.StandardCancellationStrategy.OutboundRequestEnded(StreamJsonRpc.RequestId)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.StandardCancellationStrategy.CancelInboundRequest(StreamJsonRpc.RequestId)">
<summary>
Cancels an inbound request that was previously received by <see cref="M:StreamJsonRpc.StandardCancellationStrategy.IncomingRequestStarted(StreamJsonRpc.RequestId,System.Threading.CancellationTokenSource)" />.
</summary>
<param name="id">The ID of the request to be canceled.</param>
<devremarks>
The name of the only parameter MUST be "id" in order to match the named arguments in the JSON-RPC request.
</devremarks>
</member>
<member name="T:StreamJsonRpc.StreamMessageHandler">
<summary>
An abstract base class for for sending and receiving messages over a
reading and writing pair of <see cref="T:System.IO.Stream" /> objects.
</summary>
</member>
<member name="M:StreamJsonRpc.StreamMessageHandler.#ctor(System.IO.Stream,System.IO.Stream,StreamJsonRpc.IJsonRpcMessageFormatter)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.StreamMessageHandler" /> class.
</summary>
<param name="sendingStream">The stream used to transmit messages. May be null.</param>
<param name="receivingStream">The stream used to receive messages. May be null.</param>
<param name="formatter">The formatter to use to serialize <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> instances.</param>
</member>
<member name="P:StreamJsonRpc.StreamMessageHandler.CanRead">
<summary>
Gets a value indicating whether this message handler has a receiving stream.
</summary>
</member>
<member name="P:StreamJsonRpc.StreamMessageHandler.CanWrite">
<summary>
Gets a value indicating whether this message handler has a sending stream.
</summary>
</member>
<member name="P:StreamJsonRpc.StreamMessageHandler.SendingStream">
<summary>
Gets the stream used to transmit messages. May be null.
</summary>
</member>
<member name="P:StreamJsonRpc.StreamMessageHandler.ReceivingStream">
<summary>
Gets the stream used to receive messages. May be null.
</summary>
</member>
<member name="M:StreamJsonRpc.StreamMessageHandler.Dispose(System.Boolean)">
<summary>
Disposes resources allocated by this instance.
</summary>
<param name="disposing"><see langword="true" /> when being disposed; <see langword="false" /> when being finalized.</param>
</member>
<member name="M:StreamJsonRpc.StreamMessageHandler.FlushAsync(System.Threading.CancellationToken)">
<summary>
Calls <see cref="M:System.IO.Stream.FlushAsync" /> on the <see cref="P:StreamJsonRpc.StreamMessageHandler.SendingStream" />,
or equivalent sending stream if using an alternate transport.
</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> that completes when the write buffer has been transmitted.</returns>
</member>
<member name="T:StreamJsonRpc.SystemTextJsonFormatter">
<summary>
A formatter that emits UTF-8 encoded JSON where user data should be serializable via the <see cref="T:System.Text.Json.JsonSerializer" />.
</summary>
</member>
<member name="F:StreamJsonRpc.SystemTextJsonFormatter.BuiltInSerializerOptions">
<summary>
The <see cref="P:StreamJsonRpc.SystemTextJsonFormatter.JsonSerializerOptions" /> to use for the envelope and built-in types.
</summary>
</member>
<member name="F:StreamJsonRpc.SystemTextJsonFormatter.DefaultEncoding">
<summary>
UTF-8 encoding without a preamble.
</summary>
</member>
<member name="F:StreamJsonRpc.SystemTextJsonFormatter.deserializingDocument">
<summary>
Retains the message currently being deserialized so that it can be disposed when we're done with it.
</summary>
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.SystemTextJsonFormatter" /> class.
</summary>
</member>
<member name="P:StreamJsonRpc.SystemTextJsonFormatter.Encoding">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.SystemTextJsonFormatter.JsonSerializerOptions">
<summary>
Gets or sets the options to use when serializing and deserializing JSON containing user data.
</summary>
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.Deserialize(System.Buffers.ReadOnlySequence{System.Byte})">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.Deserialize(System.Buffers.ReadOnlySequence{System.Byte},System.Text.Encoding)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.GetJsonText(StreamJsonRpc.Protocol.JsonRpcMessage)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.Serialize(System.Buffers.IBufferWriter{System.Byte},StreamJsonRpc.Protocol.JsonRpcMessage)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.TopLevelPropertyBag.#ctor(System.Text.Json.JsonDocument,System.Text.Json.JsonSerializerOptions)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.SystemTextJsonFormatter.TopLevelPropertyBag" /> class
for use with an incoming message.
</summary>
<param name="incomingMessage">The incoming message.</param>
<param name="jsonSerializerOptions">The serializer options to use.</param>
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.TopLevelPropertyBag.#ctor(System.Text.Json.JsonSerializerOptions)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.SystemTextJsonFormatter.TopLevelPropertyBag" /> class
for use with an outcoming message.
</summary>
<param name="jsonSerializerOptions">The serializer options to use.</param>
</member>
<member name="F:StreamJsonRpc.SystemTextJsonFormatter.ExceptionConverter.exceptionRecursionCounter">
<summary>
Tracks recursion count while serializing or deserializing an exception.
</summary>
</member>
<member name="T:StreamJsonRpc.SystemTextJsonFormatter.DataContractResolver">
<summary>
Adds compatibility with DataContractSerializer attributes.
</summary>
<example>
To enable this resolver, add the following when creating your <see cref="T:StreamJsonRpc.SystemTextJsonFormatter" /> instance:
<code><![CDATA[
var formatter = new SystemTextJsonFormatter
{
JsonSerializerOptions =
{
TypeInfoResolver = new SystemTextJsonFormatter.DataContractResolver(),
},
};
]]></code>
</example>
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.DataContractResolver.#ctor">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.SystemTextJsonFormatter.DataContractResolver" /> class.
</summary>
</member>
<member name="P:StreamJsonRpc.SystemTextJsonFormatter.DataContractResolver.FallbackResolver">
<summary>
Gets the fallback resolver to use for types lacking a <see cref="T:System.Runtime.Serialization.DataContractAttribute" />.
</summary>
<value>The default value is an instance of <see cref="T:System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver" />.</value>
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.DataContractResolver.GetTypeInfo(System.Type,System.Text.Json.JsonSerializerOptions)">
<inheritdoc />
</member>
<member name="T:StreamJsonRpc.SystemTextJsonFormatter.ToStringHelper">
<inheritdoc cref="T:StreamJsonRpc.MessagePackFormatter.ToStringHelper" />
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.ToStringHelper.Activate(System.Buffers.ReadOnlySequence{System.Byte})">
<summary>
Initializes this object to represent a message.
</summary>
</member>
<member name="M:StreamJsonRpc.SystemTextJsonFormatter.ToStringHelper.Deactivate">
<summary>
Cleans out this object to release memory and ensure <see cref="M:StreamJsonRpc.SystemTextJsonFormatter.ToStringHelper.ToString" /> throws if someone uses it after deactivation.
</summary>
</member>
<member name="M:StreamJsonRpc.Utilities.ReadInt32BE(System.Buffers.ReadOnlySequence{System.Byte})">
<summary>
Reads an <see cref="T:System.Int32" /> value from a buffer using big endian.
</summary>
<param name="sequence">The sequence of bytes to read from. Must be at least 4 bytes long.</param>
<returns>The read value.</returns>
</member>
<member name="M:StreamJsonRpc.Utilities.ReadIntBE(System.ReadOnlySpan{System.Byte})">
<summary>
Reads an <see cref="T:System.Int32" /> value to a buffer using big endian.
</summary>
<param name="buffer">The buffer to read from. Must be at most 4 bytes long.</param>
<returns>The read value.</returns>
</member>
<member name="M:StreamJsonRpc.Utilities.Write(System.Span{System.Byte},System.Int32)">
<summary>
Writes an <see cref="T:System.Int32" /> value to a buffer using big endian.
</summary>
<param name="buffer">The buffer to write to. Must be at least 4 bytes long.</param>
<param name="value">The value to write.</param>
</member>
<member name="M:StreamJsonRpc.Utilities.CopyTo``1(System.Buffers.ReadOnlySequence{``0}@,System.Buffers.IBufferWriter{``0})">
<summary>
Copies a <see cref="T:System.Buffers.ReadOnlySequence`1" /> to an <see cref="T:System.Buffers.IBufferWriter`1" />.
</summary>
<typeparam name="T">The type of element to copy.</typeparam>
<param name="sequence">The sequence to read from.</param>
<param name="writer">The target to write to.</param>
</member>
<member name="M:StreamJsonRpc.Utilities.ToCamelCase(System.String)">
<summary>
Converts a PascalCase identifier to camelCase.
</summary>
<param name="identifier">The identifier to convert to camcelCase.</param>
<returns>The camelCase identifier. Null if <paramref name="identifier" /> is null.</returns>
<devremarks>
Originally taken from <see href="https://github.com/JamesNK/Newtonsoft.Json/blob/666d9760719e5ec5b2a50046f7dbd6a1267c01c6/Src/Newtonsoft.Json/Utilities/StringUtils.cs#L155-L194">Newtonsoft.Json</see>.
</devremarks>
</member>
<member name="T:StreamJsonRpc.WebSocketMessageHandler">
<summary>
A message handler for the <see cref="T:StreamJsonRpc.JsonRpc" /> class
that uses <see cref="T:System.Net.WebSockets.WebSocket" /> as the transport.
</summary>
</member>
<member name="M:StreamJsonRpc.WebSocketMessageHandler.#ctor(System.Net.WebSockets.WebSocket)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.WebSocketMessageHandler" /> class
that uses the <see cref="T:StreamJsonRpc.JsonMessageFormatter" /> to serialize messages as textual JSON.
</summary>
<param name="webSocket">
The <see cref="T:System.Net.WebSockets.WebSocket" /> used to communicate.
This will <em>not</em> be automatically disposed of with this <see cref="T:StreamJsonRpc.WebSocketMessageHandler" />.
</param>
</member>
<member name="M:StreamJsonRpc.WebSocketMessageHandler.#ctor(System.Net.WebSockets.WebSocket,StreamJsonRpc.IJsonRpcMessageFormatter,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:StreamJsonRpc.WebSocketMessageHandler" /> class.
</summary>
<param name="webSocket">
The <see cref="T:System.Net.WebSockets.WebSocket" /> used to communicate.
This will <em>not</em> be automatically disposed of with this <see cref="T:StreamJsonRpc.WebSocketMessageHandler" />.
</param>
<param name="formatter">The formatter to use to serialize <see cref="T:StreamJsonRpc.Protocol.JsonRpcMessage" /> instances.</param>
<param name="sizeHint">
The size of the buffer to use for reading JSON-RPC messages.
Messages which exceed this size will be handled properly but may require multiple I/O operations.
</param>
</member>
<member name="P:StreamJsonRpc.WebSocketMessageHandler.CanWrite">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.WebSocketMessageHandler.CanRead">
<inheritdoc />
</member>
<member name="P:StreamJsonRpc.WebSocketMessageHandler.WebSocket">
<summary>
Gets the <see cref="T:System.Net.WebSockets.WebSocket" /> used to communicate.
</summary>
</member>
<member name="M:StreamJsonRpc.WebSocketMessageHandler.StreamJsonRpc#Reflection#IJsonRpcMessageBufferManager#DeserializationComplete(StreamJsonRpc.Protocol.JsonRpcMessage)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.WebSocketMessageHandler.ReadCoreAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.WebSocketMessageHandler.WriteCoreAsync(StreamJsonRpc.Protocol.JsonRpcMessage,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:StreamJsonRpc.WebSocketMessageHandler.FlushAsync(System.Threading.CancellationToken)">
<inheritdoc />
</member>
</members>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><DigestValue>yN1VfzNWU0WleYdodt8QRmyI+/CtJeWdgoQhjs2a03w=</DigestValue></Reference></SignedInfo><SignatureValue>F6W8+yPi9tTJ3tFCFLhgvsdJIKnX3tw5PoBPyOKMvvF/040m8ICuraSITTTsnTwhAYdn/fgPzy6Mtl2I1cSp84pw9D8BtrLG+CSIxjoW5pcbwrI3226mRW8xR9LG1gydV1VzqVFqm95U4qXRgNNfHJHoFWrGSVDYWrMXSe99M9K5CavCOHFENbmPvVn0wOpKo9AexW2dlVWHj/M5Q4QITLeUIsYblBg/ms3MimNyVkxe5pNlyRid3D55ImzKOrLjA5DrIr/M5QG1DxXg06PUiYOXPoJxzRaqVb6nPbSiNoSah7RPMgTSbi2luIx4O7z5kMoFNnK6sFTJ7jLoV8L+MQ==</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>3QiojSOiARVrryVJn+lnTiamZiMGLORuwCQ+VG3C+rbAvhATw269+qRRqNW7FKed50chWJ53KDIPBStHfIy5cNJYHsQw6+4InH9szgRVqn7/50i8MyRTT+VtNwxf9daGddq0hahpZvjuOnEY0wxQaTEQmWRnXWZUQY4r28tHiNVYEw9U7wHXwWEHvNn4ZlkJGEf5VpgCvr1v9fmzu4x2sV0zQsSyAVtOxfDwY1HMBcccn23tphweIdS+FNDn2vh1/2kREO0qmGc+fbFzNskjn72MiI56kjvNDRgWs+Q78yBvPCdPgTYTrto5eg33Ko2ELNR/zzEkCCuhO5Vw10qV8w==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>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</X509Certificate><X509Certificate>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</X509Certificate><X509Certificate>MIIF7TCCA9WgAwIBAgIQP4vItfyfspZDtWnWbELhRDANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwMzIyMjIwNTI4WhcNMzYwMzIyMjIxMzA0WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCygEGqNThNE3IyaCJNuLLx/9VSvGzH9dJKjDbu0cJcfoyKrq8TKG/Ac+M6ztAlqFo6be+ouFmrEyNozQwph9FvgFyPRH9dkAFSWKxRxV8qh9zc2AodwQO5e7BW6KPeZGHCnvjzfLnsDbVU/ky2ZU+I8JxImQxCCwl8MVkXeQZ4KI2JOkwDJb5xalwL54RgpJki49KvhKSn+9GY7Qyp3pSJ4Q6g3MDOmT3qCFK7VnnkH4S6Hri0xElcTzFLh93dBWcmmYDgcRGjuKVB4qRTufcyKYMME782XgSzS0NHL2vikR7TmE/dQgfI6B0S/Jmpaz6SfsjWaTr8ZL22CZ3K/QwLopt3YEsDlKQwaRLWQi3BQUzK3Kr9j1uDRprZ/LHR47PJf0h6zSTwQY9cdNCssBAgBkm3xy0hyFfj0IbzA2j70M5xwYmZSmQBbP3sMJHPQTySx+W6hh1hhMdfgzlirrSSL0fzC/hV66AfWdC7dJse0Hbm8ukG1xDo+mTeacY1logC8Ea4PyeZb8txiSk190gWAjWP1Xl8TQLPX+uKg09FcYj5qQ1OcunCnAfPSRtOBA5jUYxe2ADBVSy2xuDCZU7JNDn1nLPEfuhhbhNfFcRf2X7tHc7uROzLLoax7Dj2cO2rXBPB2Q8Nx4CyVe0096yb5MPa50c8prWPMd/FS6/r8QIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUci06AjGQQ7kUBU7h6qfHMdEjiTQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggIBAH9yzw+3xRXbm8BJyiZb/p4T5tPw0tuXX/JLP02zrhmu7deXoKzvqTqjwkGw5biRnhOBJAPmCf0/V0A5ISRW0RAvS0CpNoZLtFNXmvvxfomPEf4YbFGq6O0JlbXlccmh6Yd1phV/yX43VF50k8XDZ8wNT2uoFwxtCJJ+i92Bqi1wIcM9BhS7vyRep4TXPw8hIr1LAAbblxzYXtTFC1yHblCk6MM4pPvLLMWSZpuFXst6bJN8gClYW1e1QGm6CHmmZGIVnYeWRbVmIyADixxzoNOieTPgUFmG2y/lAiXqcyqfABTINseSO+lOAOzYVgm5M0kS0lQLAausR7aRKX1MtHWAUgHoyoL2n8ysnI8X6i8msKtyrAv+nlEex0NVZ09Rs1fWtuzuUrc66U7h14GIvE+OdbtLqPA1qibUZ2dJsnBMO5PcHd94kIZysjik0dySTclY6ysSXNQ7roxrsIPlAT/4CTL2kzU0Iq/dNw13CYArzUgA8YyZGUcFAenRv9FO0OYoQzeZpApKCNmacXPSqs0xE2N2oTdvkjgefRI8ZjLny23h/FKJ3crWZgWalmG+oijHHKOnNlA8OqTfSm7mhzvO6/DggTedEzxSjr25HTTGHdUKaj2YKXCMiSrRq4IQSB/c9O+lxbtVGjhjhE63bK2VVOxlIhBJF7jAHscPrFRH</X509Certificate></X509Data></KeyInfo><Object Id="ts-countersig"><X509Data><X509Certificate>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</X509Certificate><X509Certificate>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</X509Certificate></X509Data><CounterSignature ts-format="cms-timestamp-message" xmlns="http://schemas.microsoft.com/xmldsig/timestamp/2003">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</CounterSignature></Object></Signature></doc>