Class BusInstance<TBus>
- Namespace
- MassTransit
- Assembly
- MassTransit.Abstractions.dll
When configuring multiple bus instances in a single container (MultiBus), this base class should be used as a the base for the additional bus instance type.
public abstract class BusInstance<TBus> : IBusControl, IBus, IPublishEndpoint, IPublishEndpointProvider, IPublishObserverConnector, ISendEndpointProvider, ISendObserverConnector, IConsumePipeConnector, IRequestPipeConnector, IConsumeMessageObserverConnector, IConsumeObserverConnector, IReceiveObserverConnector, IReceiveEndpointObserverConnector, IReceiveConnector, IEndpointConfigurationObserverConnector, IProbeSite where TBus : class, IBus
Type Parameters
TBusThe specific bus interface type for this bus instance
- Inheritance
-
BusInstance<TBus>
- Implements
- Inherited Members
- Extension Methods
Constructors
BusInstance(IBusControl)
protected BusInstance(IBusControl busControl)
Parameters
busControlIBusControl
Properties
Address
The InputAddress of the default bus endpoint
public Uri Address { get; }
Property Value
- Uri
Topology
The bus topology
public IBusTopology Topology { get; }
Property Value
Methods
CheckHealth()
Returns the health of the bus, including all receive endpoints
public BusHealthResult CheckHealth()
Returns
ConnectConsumeMessageObserver<T>(IConsumeMessageObserver<T>)
public ConnectHandle ConnectConsumeMessageObserver<T>(IConsumeMessageObserver<T> observer) where T : class
Parameters
observerIConsumeMessageObserver<T>
Returns
Type Parameters
T
ConnectConsumeObserver(IConsumeObserver)
public ConnectHandle ConnectConsumeObserver(IConsumeObserver observer)
Parameters
observerIConsumeObserver
Returns
ConnectConsumePipe<T>(IPipe<ConsumeContext<T>>)
public ConnectHandle ConnectConsumePipe<T>(IPipe<ConsumeContext<T>> pipe) where T : class
Parameters
pipeIPipe<ConsumeContext<T>>
Returns
Type Parameters
T
ConnectConsumePipe<T>(IPipe<ConsumeContext<T>>, ConnectPipeOptions)
public ConnectHandle ConnectConsumePipe<T>(IPipe<ConsumeContext<T>> pipe, ConnectPipeOptions options) where T : class
Parameters
pipeIPipe<ConsumeContext<T>>optionsConnectPipeOptions
Returns
Type Parameters
T
ConnectEndpointConfigurationObserver(IEndpointConfigurationObserver)
Connect a configuration observer to the bus configurator, which is invoked as consumers are configured.
public ConnectHandle ConnectEndpointConfigurationObserver(IEndpointConfigurationObserver observer)
Parameters
observerIEndpointConfigurationObserver
Returns
ConnectPublishObserver(IPublishObserver)
public ConnectHandle ConnectPublishObserver(IPublishObserver observer)
Parameters
observerIPublishObserver
Returns
ConnectReceiveEndpoint(IEndpointDefinition, IEndpointNameFormatter?, Action<IReceiveEndpointConfigurator>?)
Adds a receive endpoint
public HostReceiveEndpointHandle ConnectReceiveEndpoint(IEndpointDefinition definition, IEndpointNameFormatter? endpointNameFormatter, Action<IReceiveEndpointConfigurator>? configureEndpoint = null)
Parameters
definitionIEndpointDefinitionAn endpoint definition, which abstracts specific endpoint behaviors from the transport
endpointNameFormatterIEndpointNameFormatterconfigureEndpointAction<IReceiveEndpointConfigurator>The configuration callback
Returns
ConnectReceiveEndpoint(string, Action<IReceiveEndpointConfigurator>?)
Adds a receive endpoint
public HostReceiveEndpointHandle ConnectReceiveEndpoint(string queueName, Action<IReceiveEndpointConfigurator>? configureEndpoint)
Parameters
queueNamestringThe queue name for the receive endpoint
configureEndpointAction<IReceiveEndpointConfigurator>The configuration callback
Returns
ConnectReceiveEndpointObserver(IReceiveEndpointObserver)
public ConnectHandle ConnectReceiveEndpointObserver(IReceiveEndpointObserver observer)
Parameters
observerIReceiveEndpointObserver
Returns
ConnectReceiveObserver(IReceiveObserver)
Connect an observer to the receiving endpoint
public ConnectHandle ConnectReceiveObserver(IReceiveObserver observer)
Parameters
observerIReceiveObserver
Returns
ConnectRequestPipe<T>(Guid, IPipe<ConsumeContext<T>>)
Connect the consume pipe to the pipeline for messages with the specified RequestId header
public ConnectHandle ConnectRequestPipe<T>(Guid requestId, IPipe<ConsumeContext<T>> pipe) where T : class
Parameters
requestIdGuidpipeIPipe<ConsumeContext<T>>
Returns
Type Parameters
T
ConnectSendObserver(ISendObserver)
public ConnectHandle ConnectSendObserver(ISendObserver observer)
Parameters
observerISendObserver
Returns
GetPublishSendEndpoint<T>()
Return the SendEndpoint used for publishing the specified message
public Task<ISendEndpoint> GetPublishSendEndpoint<T>() where T : class
Returns
Type Parameters
T
GetSendEndpoint(Uri)
Return the send endpoint for the specified address
public Task<ISendEndpoint> GetSendEndpoint(Uri address)
Parameters
addressUriThe endpoint address
Returns
- Task<ISendEndpoint>
The send endpoint
Probe(ProbeContext)
public void Probe(ProbeContext context)
Parameters
contextProbeContext
Publish(object, IPipe<PublishContext>, CancellationToken)
Publishes an object as a message, using the message type specified. If the object cannot be cast to the specified message type, an exception will be thrown.
public Task Publish(object message, IPipe<PublishContext> publishPipe, CancellationToken cancellationToken = default)
Parameters
messageobjectThe message object
publishPipeIPipe<PublishContext>cancellationTokenCancellationToken
Returns
Publish(object, CancellationToken)
Publishes an object as a message, using the message type specified. If the object cannot be cast to the specified message type, an exception will be thrown.
public Task Publish(object message, CancellationToken cancellationToken = default)
Parameters
messageobjectThe message object
cancellationTokenCancellationToken
Returns
Publish(object, Type, IPipe<PublishContext>, CancellationToken)
Publishes an object as a message, using the message type specified. If the object cannot be cast to the specified message type, an exception will be thrown.
public Task Publish(object message, Type messageType, IPipe<PublishContext> publishPipe, CancellationToken cancellationToken = default)
Parameters
messageobjectThe message object
messageTypeTypeThe type of the message (use message.GetType() if desired)
publishPipeIPipe<PublishContext>cancellationTokenCancellationToken
Returns
Publish(object, Type, CancellationToken)
Publishes an object as a message, using the message type specified. If the object cannot be cast to the specified message type, an exception will be thrown.
public Task Publish(object message, Type messageType, CancellationToken cancellationToken = default)
Parameters
messageobjectThe message object
messageTypeTypeThe type of the message (use message.GetType() if desired)
cancellationTokenCancellationToken
Returns
Publish<T>(object, IPipe<PublishContext<T>>, CancellationToken)
Publish<T>(T, CancellationToken): this overload further takes an action; it allows you to set PublishContext meta-data. Also Publish<T>(T, CancellationToken).
public Task Publish<T>(object values, IPipe<PublishContext<T>> publishPipe, CancellationToken cancellationToken = default) where T : class
Parameters
valuesobjectThe dictionary of values to become hydrated and published under the type of the interface.
publishPipeIPipe<PublishContext<T>>cancellationTokenCancellationToken
Returns
Type Parameters
TThe type of the message to publish
Publish<T>(object, IPipe<PublishContext>, CancellationToken)
Publish<T>(T, CancellationToken): this overload further takes an action; it allows you to set PublishContext meta-data. Also Publish<T>(T, CancellationToken).
public Task Publish<T>(object values, IPipe<PublishContext> publishPipe, CancellationToken cancellationToken = default) where T : class
Parameters
valuesobjectThe dictionary of values to become hydrated and published under the type of the interface.
publishPipeIPipe<PublishContext>cancellationTokenCancellationToken
Returns
Type Parameters
TThe type of the message to publish
Publish<T>(object, CancellationToken)
Publish<T>(T, CancellationToken): this is a "dynamically" typed overload - give it an interface as its type parameter, and a loosely typed dictionary of values and the MassTransit underlying infrastructure will populate an object instance with the passed values. It actually does this with DynamicProxy in the background.
public Task Publish<T>(object values, CancellationToken cancellationToken = default) where T : class
Parameters
valuesobjectThe dictionary of values to place in the object instance to implement the interface.
cancellationTokenCancellationToken
Returns
Type Parameters
TThe type of the interface or non-sealed class with all-virtual members.
Publish<T>(T, IPipe<PublishContext<T>>, CancellationToken)
Publishes a message to all subscribed consumers for the message type as specified by the generic parameter. The second parameter allows the caller to customize the outgoing publish context and set things like headers on the message.
Read up on publishing: http://readthedocs.org/docs/masstransit/en/latest/overview/publishing.html
public Task Publish<T>(T message, IPipe<PublishContext<T>> publishPipe, CancellationToken cancellationToken = default) where T : class
Parameters
messageTThe messages to be published
publishPipeIPipe<PublishContext<T>>cancellationTokenCancellationToken
Returns
Type Parameters
TThe type of the message
Publish<T>(T, IPipe<PublishContext>, CancellationToken)
Publishes a message to all subscribed consumers for the message type as specified by the generic parameter. The second parameter allows the caller to customize the outgoing publish context and set things like headers on the message.
Read up on publishing: http://readthedocs.org/docs/masstransit/en/latest/overview/publishing.html
public Task Publish<T>(T message, IPipe<PublishContext> publishPipe, CancellationToken cancellationToken = default) where T : class
Parameters
messageTThe messages to be published
publishPipeIPipe<PublishContext>cancellationTokenCancellationToken
Returns
Type Parameters
TThe type of the message
Publish<T>(T, CancellationToken)
Publishes a message to all subscribed consumers for the message type as specified by the generic parameter. The second parameter allows the caller to customize the outgoing publish context and set things like headers on the message.
Read up on publishing: http://readthedocs.org/docs/masstransit/en/latest/overview/publishing.html
public Task Publish<T>(T message, CancellationToken cancellationToken = default) where T : class
Parameters
messageTThe messages to be published
cancellationTokenCancellationToken
Returns
Type Parameters
TThe type of the message
StartAsync(CancellationToken)
Starts the bus (assuming the battery isn't dead). Once the bus has been started it cannot be started again, even after it has been stopped.
public Task<BusHandle> StartAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
- Task<BusHandle>
The BusHandle for the started bus. This is no longer needed, as calling Stop on the IBusControl will stop the bus equally well.
StopAsync(CancellationToken)
Stops the bus if it has been started. If the bus hasn't been started, the method returns without any warning.
public Task StopAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken