Class ShieldDelegatingHandler

Namespace
Kevlar.Extensions.Http
Assembly
Kevlar.Extensions.Http.dll

A DelegatingHandler with safe per-attempt request replay.

public sealed class ShieldDelegatingHandler : DelegatingHandler, IDisposable
Inheritance
ShieldDelegatingHandler
Implements
Inherited Members

Remarks

The caller retains ownership of the original request. The handler owns request-factory results, cloned requests, and nonselected responses. Non-idempotent replay requires explicit opt-in.

Constructors

ShieldDelegatingHandler(Shield<HttpResponseMessage>)

Creates the handler with safe no-buffer replay defaults.

public ShieldDelegatingHandler(Shield<HttpResponseMessage> shield)

Parameters

shield Shield<HttpResponseMessage>

ShieldDelegatingHandler(Shield<HttpResponseMessage>, ShieldHttpHandlerOptions)

Creates the handler with explicit replay and routing options.

public ShieldDelegatingHandler(Shield<HttpResponseMessage> shield, ShieldHttpHandlerOptions options)

Parameters

shield Shield<HttpResponseMessage>
options ShieldHttpHandlerOptions

ShieldDelegatingHandler(Func<HttpRequestMessage, Shield<HttpResponseMessage>>)

Creates the handler with a shield selected once for each request.

public ShieldDelegatingHandler(Func<HttpRequestMessage, Shield<HttpResponseMessage>> shieldSelector)

Parameters

shieldSelector Func<HttpRequestMessage, Shield<HttpResponseMessage>>

ShieldDelegatingHandler(Func<HttpRequestMessage, Shield<HttpResponseMessage>>, ShieldHttpHandlerOptions)

Creates the handler with per-request shield selection and explicit replay options.

public ShieldDelegatingHandler(Func<HttpRequestMessage, Shield<HttpResponseMessage>> shieldSelector, ShieldHttpHandlerOptions options)

Parameters

shieldSelector Func<HttpRequestMessage, Shield<HttpResponseMessage>>
options ShieldHttpHandlerOptions

Methods

Dispose(bool)

protected override void Dispose(bool disposing)

Parameters

disposing bool

SendAsync(HttpRequestMessage, CancellationToken)

protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)

Parameters

request HttpRequestMessage
cancellationToken CancellationToken

Returns

Task<HttpResponseMessage>