Table of Contents

Class JsonRpcTargetOptions

Namespace
Nerdbank.JsonRpc
Assembly
Nerdbank.JsonRpc.dll

Provides options that control how a local object's methods are registered as JSON-RPC targets.

public sealed record JsonRpcTargetOptions : IEquatable<JsonRpcTargetOptions>
Inheritance
JsonRpcTargetOptions
Implements
Inherited Members

Properties

Default

Gets a shared instance with default settings.

public static JsonRpcTargetOptions Default { get; }

Property Value

JsonRpcTargetOptions

EventNameTransform

Gets a function that maps a CLR event name without an explicit Name to the JSON-RPC method name used in the outbound notification.

public Func<string, string> EventNameTransform { get; init; }

Property Value

Func<string, string>

A non-null function. The default value is CamelCase(string).

Remarks

Events explicitly named via Name always notify under that exact name and bypass this transform. This property has no effect when NotifyClientOfEvents is false.

Exceptions

ArgumentNullException

Thrown when set to null.

MethodNameTransform

Gets a function that maps a CLR method name without an explicit Name to the JSON-RPC method name that dispatches to it.

public Func<string, string> MethodNameTransform { get; init; }

Property Value

Func<string, string>

A non-null function. The default value is Default, which removes a trailing Async suffix and converts the result to camelCase.

Remarks

Methods explicitly named via Name always dispatch on that exact name and bypass this transform. Use Identity to interoperate with a StreamJsonRpc peer using its default (untransformed) method naming.

Exceptions

ArgumentNullException

Thrown when set to null.

NotifyClientOfEvents

Gets a value indicating whether events raised on the target object should be relayed to the remote party via a JSON-RPC notification.

public bool NotifyClientOfEvents { get; init; }

Property Value

bool

The default is true.