Some types are not serializable but are specially recognized and marshaled by StreamJsonRpc when used in arguments or return values.
CancellationToken
IProgress<T>
Stream
,IDuplexPipe
,PipeReader
,PipeWriter
IAsyncEnumerable<T>
IObserver<T>
IDisposable
- Interfaces marked with
RpcMarshalableAttribute
- General marshalable object support
The CancellationToken
support is built into the JsonRpc
class itself so that it works in any configuration, provided the remote side also supports it.
The rest of the types listed above require support by the IJsonRpcMessageFormatter
in use. All formatters that ship within the StreamJsonRpc library come with built-in support for all of these.