Class DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>
- Namespace
- Silverback.Messaging.Producing.EndpointResolvers
- Assembly
- Silverback.Integration.dll
Dynamically resolves the destination endpoint (e.g. the target topic and partition) for each message being produced.
public abstract record DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration> : IDynamicProducerEndpointResolver<TEndpoint>, IDynamicProducerEndpointResolver, IProducerEndpointResolver<TEndpoint>, IProducerEndpointResolver, IEquatable<DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>> where TMessage : class where TEndpoint : ProducerEndpoint where TConfiguration : ProducerEndpointConfiguration
Type Parameters
TMessageThe type of the message being produced.
TEndpointThe type of the endpoint being resolved.
TConfigurationThe type of the endpoint configuration.
- Inheritance
-
DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>
- Implements
-
IDynamicProducerEndpointResolver<TEndpoint>IProducerEndpointResolver<TEndpoint>IEquatable<DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>>
- Derived
- Inherited Members
Constructors
DynamicProducerEndpointResolver(DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>)
protected DynamicProducerEndpointResolver(DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration> original)
Parameters
originalDynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>
DynamicProducerEndpointResolver(string)
Initializes a new instance of the DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration> class.
protected DynamicProducerEndpointResolver(string rawName)
Parameters
Properties
EqualityContract
protected virtual Type EqualityContract { get; }
Property Value
RawName
Gets the raw endpoint name that can be used as RawName.
public string RawName { get; }
Property Value
Methods
DeserializeEndpoint(string, TConfiguration)
Deserializes the endpoint from a string.
protected abstract TEndpoint DeserializeEndpoint(string serializedEndpoint, TConfiguration configuration)
Parameters
serializedEndpointstringThe serialized endpoint.
configurationTConfigurationThe endpoint configuration.
Returns
- TEndpoint
The deserialized endpoint.
Equals(DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>?)
public virtual bool Equals(DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>? other)
Parameters
otherDynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>
Returns
Equals(object?)
public override bool Equals(object? obj)
Parameters
objobject
Returns
GetEndpoint(IOutboundEnvelope)
Gets the computed actual destination endpoint for the message being produced.
public ProducerEndpoint GetEndpoint(IOutboundEnvelope envelope)
Parameters
envelopeIOutboundEnvelopeThe envelope containing the message to be produced.
Returns
- ProducerEndpoint
The ProducerEndpoint for the specified message.
GetEndpoint(IOutboundEnvelope, TConfiguration)
Gets the computed actual destination endpoint for the message being produced.
public TEndpoint GetEndpoint(IOutboundEnvelope envelope, TConfiguration configuration)
Parameters
envelopeIOutboundEnvelopeThe envelope containing the message to be produced.
configurationTConfiguration
Returns
- TEndpoint
The ProducerEndpoint for the specified message.
GetEndpointCore(IOutboundEnvelope<TMessage>, TConfiguration)
Gets the computed actual destination endpoint for the message being produced.
protected abstract TEndpoint GetEndpointCore(IOutboundEnvelope<TMessage> envelope, TConfiguration configuration)
Parameters
envelopeIOutboundEnvelope<TMessage>The envelope containing the message to be produced.
configurationTConfigurationThe endpoint configuration.
Returns
- TEndpoint
The ProducerEndpoint for the specified message.
GetHashCode()
public override int GetHashCode()
Returns
GetSerializedEndpoint(IOutboundEnvelope)
Gets the string representation of the computed actual destination endpoint for the message being produced.
public string GetSerializedEndpoint(IOutboundEnvelope envelope)
Parameters
envelopeIOutboundEnvelopeThe envelope containing the message to be produced.
Returns
- string
The ProducerEndpoint for the specified message.
PrintMembers(StringBuilder)
protected virtual bool PrintMembers(StringBuilder builder)
Parameters
builderStringBuilder
Returns
SerializeEndpoint(TEndpoint)
Serializes the endpoint to a string.
protected abstract string SerializeEndpoint(TEndpoint endpoint)
Parameters
endpointTEndpointThe endpoint to be serialized.
Returns
- string
The serialized endpoint.
ToString()
public override string ToString()
Returns
Operators
operator ==(DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>?, DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>?)
public static bool operator ==(DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>? left, DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>? right)
Parameters
leftDynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>rightDynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>
Returns
operator !=(DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>?, DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>?)
public static bool operator !=(DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>? left, DynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>? right)
Parameters
leftDynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>rightDynamicProducerEndpointResolver<TMessage, TEndpoint, TConfiguration>