Table of Contents

Class LinkBuilder

Namespace
AnyProtocol.Configuration
Assembly
AnyProtocol.dll

Builds the protocols, contracts, filters, and services used by a AnyProtocol bus.

public sealed class LinkBuilder
Inheritance
LinkBuilder
Inherited Members

Constructors

LinkBuilder()

public LinkBuilder()

Methods

AddClientFilter(IMessageFilter)

Adds a filter to the outbound client pipeline.

public LinkBuilder AddClientFilter(IMessageFilter filter)

Parameters

filter IMessageFilter

Returns

LinkBuilder

AddClient<TContract>(Action<ClientOptionsBuilder>?)

Registers a generated client proxy for a contract.

public LinkBuilder AddClient<TContract>(Action<ClientOptionsBuilder>? configure = null) where TContract : class

Parameters

configure Action<ClientOptionsBuilder>

Returns

LinkBuilder

Type Parameters

TContract

AddClient<TContract>(string, Action<ClientOptionsBuilder>?)

Registers a generated client proxy with a stable configuration key.

public LinkBuilder AddClient<TContract>(string configurationKey, Action<ClientOptionsBuilder>? configure = null) where TContract : class

Parameters

configurationKey string
configure Action<ClientOptionsBuilder>

Returns

LinkBuilder

Type Parameters

TContract

AddEventHandler<TEvent, THandler>(Action<EventOptionsBuilder>?)

Registers an event consumer and its publisher.

public LinkBuilder AddEventHandler<TEvent, THandler>(Action<EventOptionsBuilder>? configure = null) where TEvent : class where THandler : class, IEventConsumer<TEvent>

Parameters

configure Action<EventOptionsBuilder>

Returns

LinkBuilder

Type Parameters

TEvent
THandler

AddServerFilter(IMessageFilter)

Adds a filter to the inbound server pipeline.

public LinkBuilder AddServerFilter(IMessageFilter filter)

Parameters

filter IMessageFilter

Returns

LinkBuilder

AddServer<TContract, TImplementation>(Action<ServerOptionsBuilder>?)

Registers a scoped server implementation for a contract.

public LinkBuilder AddServer<TContract, TImplementation>(Action<ServerOptionsBuilder>? configure = null) where TContract : class where TImplementation : class, TContract

Parameters

configure Action<ServerOptionsBuilder>

Returns

LinkBuilder

Type Parameters

TContract
TImplementation

AddServer<TContract, TImplementation>(string, Action<ServerOptionsBuilder>?)

Registers a scoped server implementation with a stable configuration key.

public LinkBuilder AddServer<TContract, TImplementation>(string configurationKey, Action<ServerOptionsBuilder>? configure = null) where TContract : class where TImplementation : class, TContract

Parameters

configurationKey string
configure Action<ServerOptionsBuilder>

Returns

LinkBuilder

Type Parameters

TContract
TImplementation

AddTransport(ProtocolKey, IMessagingProtocol)

Registers a named messaging transport.

public LinkBuilder AddTransport(ProtocolKey protocol, IMessagingProtocol transport)

Parameters

protocol ProtocolKey
transport IMessagingProtocol

Returns

LinkBuilder

AddTransport(string, IMessagingProtocol)

Registers a named messaging transport.

public LinkBuilder AddTransport(string name, IMessagingProtocol transport)

Parameters

name string
transport IMessagingProtocol

Returns

LinkBuilder

Build(ContractDescriptorFactory?)

Builds an immutable runtime plan from the current link definition.

public RuntimePlan Build(ContractDescriptorFactory? descriptorFactory = null)

Parameters

descriptorFactory ContractDescriptorFactory

Returns

RuntimePlan

ConfigureClientProtocol(string, ProtocolKey)

Overrides the protocol of a named client registration.

public LinkBuilder ConfigureClientProtocol(string configurationKey, ProtocolKey protocol)

Parameters

configurationKey string
protocol ProtocolKey

Returns

LinkBuilder

ConfigureServerProtocols(string, params ProtocolKey[])

Overrides the protocols of a named server registration.

public LinkBuilder ConfigureServerProtocols(string configurationKey, params ProtocolKey[] protocols)

Parameters

configurationKey string
protocols ProtocolKey[]

Returns

LinkBuilder

UseLargePayloadOffload(Action<LargePayloadOffloadOptions>)

Enables serialized-body offload with explicit bounded limits.

public LinkBuilder UseLargePayloadOffload(Action<LargePayloadOffloadOptions> configure)

Parameters

configure Action<LargePayloadOffloadOptions>

Returns

LinkBuilder

UseSerializer(IMessageSerializer)

Sets the serializer shared by clients, servers, and event handlers.

public LinkBuilder UseSerializer(IMessageSerializer serializer)

Parameters

serializer IMessageSerializer

Returns

LinkBuilder