nuget updates
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": 2,
|
||||
"contentHash": "aY5vLcrhdXCHsCjYI2lNwfat2vdSuiPs0FFZiy7IM6zcyqdxaefG8J8ezTKkZyiuAtznjVJJT70B660l/WlsxA==",
|
||||
"source": "/mnt/e/dev/git.stella-ops.org/local-nugets"
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>Microsoft.Extensions.Http.Polly</id>
|
||||
<version>10.0.0-rc.2.25502.107</version>
|
||||
<authors>Microsoft</authors>
|
||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||
<license type="expression">MIT</license>
|
||||
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
|
||||
<icon>Icon.png</icon>
|
||||
<readme>PACKAGE.md</readme>
|
||||
<projectUrl>https://asp.net/</projectUrl>
|
||||
<description>The HttpClient factory is a pattern for configuring and retrieving named HttpClients in a composable way. This package integrates IHttpClientFactory with the Polly library, to add transient-fault-handling and resiliency through fluent policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback.
|
||||
|
||||
|
||||
This package was built from the source code at https://github.com/dotnet/dotnet/tree/89c8f6a112d37d2ea8b77821e56d170a1bccdc5a</description>
|
||||
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
||||
<tags>aspnetcore httpclient</tags>
|
||||
<serviceable>true</serviceable>
|
||||
<repository type="git" url="https://github.com/dotnet/dotnet" commit="89c8f6a112d37d2ea8b77821e56d170a1bccdc5a" />
|
||||
<dependencies>
|
||||
<group targetFramework=".NETStandard2.0">
|
||||
<dependency id="Microsoft.Extensions.Http" version="10.0.0-rc.2.25502.107" exclude="Build,Analyzers" />
|
||||
<dependency id="Polly" version="7.2.4" exclude="Build,Analyzers" />
|
||||
<dependency id="Polly.Extensions.Http" version="3.0.0" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
</dependencies>
|
||||
</metadata>
|
||||
</package>
|
||||
@@ -0,0 +1,68 @@
|
||||
## About
|
||||
|
||||
`Microsoft.Extensions.Http.Polly` integrates `IHttpClientFactory` with the [Polly](https://github.com/App-vNext/Polly) library to provide comprehensive resilience and transient fault-handling. It allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.
|
||||
|
||||
> [!NOTE]
|
||||
> This package is deprecated. Please use either [`Microsoft.Extensions.Resilience`](https://www.nuget.org/packages/Microsoft.Extensions.Resilience) or [`Microsoft.Extensions.Http.Resilience`](https://www.nuget.org/packages/Microsoft.Extensions.Http.Resilience) instead.
|
||||
|
||||
## How to Use
|
||||
|
||||
To use `Microsoft.Extensions.Http.Polly`, follow these steps:
|
||||
|
||||
### Installation
|
||||
|
||||
```shell
|
||||
dotnet add package Microsoft.Extensions.Http.Polly
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
#### Handle transient faults
|
||||
|
||||
`AddTransientHttpErrorPolicy` can be used define a policy that handles transient errors:
|
||||
|
||||
```csharp
|
||||
builder.Services.AddHttpClient("PollyWaitAndRetry")
|
||||
.AddTransientHttpErrorPolicy(policyBuilder =>
|
||||
policyBuilder.WaitAndRetryAsync(
|
||||
retryCount: 3,
|
||||
retryNumber => TimeSpan.FromMilliseconds(600)));
|
||||
```
|
||||
|
||||
In the preceding example, failed requests are retried up to three times with a delay of 600 ms between attempts.
|
||||
|
||||
#### Dynamically select policies
|
||||
|
||||
To dynamically inspect a request and decide which policy apply, use the `AddPolicyHandler` extension method:
|
||||
|
||||
```csharp
|
||||
var timeoutPolicy = Policy.TimeoutAsync<HttpResponseMessage>(
|
||||
TimeSpan.FromSeconds(10));
|
||||
var longTimeoutPolicy = Policy.TimeoutAsync<HttpResponseMessage>(
|
||||
TimeSpan.FromSeconds(30));
|
||||
|
||||
builder.Services.AddHttpClient("PollyDynamic")
|
||||
.AddPolicyHandler(httpRequestMessage =>
|
||||
httpRequestMessage.Method == HttpMethod.Get
|
||||
? timeoutPolicy
|
||||
: longTimeoutPolicy);
|
||||
```
|
||||
|
||||
In this example, if the outgoing request is an HTTP GET, a 10-second timeout is applied. For any other HTTP method, a 30-second timeout is used.
|
||||
|
||||
## Main Types
|
||||
|
||||
The main types provided by this package are:
|
||||
|
||||
* `PollyHttpClientBuilderExtensions`: Provides extension methods for configuring `PolicyHttpMessageHandler` message handlers as part of an `HttpClient` message handler pipeline
|
||||
* `PolicyHttpMessageHandler`: A `DelegatingHandler` implementation that executes request processing surrounded by a `Polly.Policy`
|
||||
* `PollyServiceCollectionExtensions`: Provides convenience extension methods to register `Polly.Registry.IPolicyRegistry<string>` and `Polly.Registry.IReadOnlyPolicyRegistry<string>` in a service collection
|
||||
* `HttpRequestMessageExtensions`: Provides extension methods for `HttpRequestMessage` Polly integration
|
||||
|
||||
## Additional Documentation
|
||||
|
||||
For additional documentation and examples, refer to the [official documentation](https://learn.microsoft.com/aspnet/core/fundamentals/http-requests?view#use-polly-based-handlers) on using Polly-based handlers in ASP.NET Core.
|
||||
|
||||
## Feedback & Contributing
|
||||
|
||||
`Microsoft.Extensions.Http.Polly` is released as open-source under the [MIT license](https://licenses.nuget.org/MIT). Bug reports and contributions are welcome at [the GitHub repository](https://github.com/dotnet/aspnetcore).
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,405 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Microsoft.Extensions.Http.Polly</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions">
|
||||
<summary>
|
||||
Extensions methods for configuring <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> message handlers as part of
|
||||
and <see cref="T:System.Net.Http.HttpClient"/> message handler pipeline.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions.AddPolicyHandler(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage})">
|
||||
<summary>
|
||||
Adds a <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> which will surround request execution with the provided
|
||||
<see cref="T:Polly.IAsyncPolicy`1"/>.
|
||||
</summary>
|
||||
<param name="builder">The <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/>.</param>
|
||||
<param name="policy">The <see cref="T:Polly.IAsyncPolicy`1"/>.</param>
|
||||
<returns>An <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/> that can be used to configure the client.</returns>
|
||||
<remarks>
|
||||
<para>
|
||||
See the remarks on <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> for guidance on configuring policies.
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions.AddPolicyHandler(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func{System.Net.Http.HttpRequestMessage,Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage}})">
|
||||
<summary>
|
||||
Adds a <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> which will surround request execution with a policy returned
|
||||
by the <paramref name="policySelector"/>.
|
||||
</summary>
|
||||
<param name="builder">The <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/>.</param>
|
||||
<param name="policySelector">
|
||||
Selects an <see cref="T:Polly.IAsyncPolicy`1"/> to apply to the current request.
|
||||
</param>
|
||||
<returns>An <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/> that can be used to configure the client.</returns>
|
||||
<remarks>
|
||||
<para>
|
||||
See the remarks on <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> for guidance on configuring policies.
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions.AddPolicyHandler(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func{System.IServiceProvider,System.Net.Http.HttpRequestMessage,Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage}})">
|
||||
<summary>
|
||||
Adds a <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> which will surround request execution with a policy returned
|
||||
by the <paramref name="policySelector"/>.
|
||||
</summary>
|
||||
<param name="builder">The <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/>.</param>
|
||||
<param name="policySelector">
|
||||
Selects an <see cref="T:Polly.IAsyncPolicy`1"/> to apply to the current request.
|
||||
</param>
|
||||
<returns>An <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/> that can be used to configure the client.</returns>
|
||||
<remarks>
|
||||
<para>
|
||||
See the remarks on <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> for guidance on configuring policies.
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions.AddPolicyHandlerFromRegistry(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.String)">
|
||||
<summary>
|
||||
Adds a <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> which will surround request execution with a policy returned
|
||||
by the <see cref="T:Polly.Registry.IReadOnlyPolicyRegistry`1"/>.
|
||||
</summary>
|
||||
<param name="builder">The <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/>.</param>
|
||||
<param name="policyKey">
|
||||
The key used to resolve a policy from the <see cref="T:Polly.Registry.IReadOnlyPolicyRegistry`1"/>.
|
||||
</param>
|
||||
<returns>An <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/> that can be used to configure the client.</returns>
|
||||
<remarks>
|
||||
<para>
|
||||
See the remarks on <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> for guidance on configuring policies.
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions.AddPolicyHandlerFromRegistry(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func{Polly.Registry.IReadOnlyPolicyRegistry{System.String},System.Net.Http.HttpRequestMessage,Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage}})">
|
||||
<summary>
|
||||
Adds a <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> which will surround request execution with a policy returned
|
||||
by the <see cref="T:Polly.Registry.IReadOnlyPolicyRegistry`1"/>.
|
||||
</summary>
|
||||
<param name="builder">The <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/>.</param>
|
||||
<param name="policySelector">
|
||||
Selects an <see cref="T:Polly.IAsyncPolicy`1"/> to apply to the current request.
|
||||
</param>
|
||||
<returns>An <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/> that can be used to configure the client.</returns>
|
||||
<remarks>
|
||||
<para>
|
||||
See the remarks on <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> for guidance on configuring policies.
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions.AddTransientHttpErrorPolicy(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func{Polly.PolicyBuilder{System.Net.Http.HttpResponseMessage},Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage}})">
|
||||
<summary>
|
||||
Adds a <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> which will surround request execution with a <see cref="T:Polly.Policy"/>
|
||||
created by executing the provided configuration delegate. The policy builder will be preconfigured to trigger
|
||||
application of the policy for requests that fail with conditions that indicate a transient failure.
|
||||
</summary>
|
||||
<param name="builder">The <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/>.</param>
|
||||
<param name="configurePolicy">A delegate used to create a <see cref="T:Polly.IAsyncPolicy`1"/>.</param>
|
||||
<returns>An <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/> that can be used to configure the client.</returns>
|
||||
<remarks>
|
||||
<para>
|
||||
See the remarks on <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> for guidance on configuring policies.
|
||||
</para>
|
||||
<para>
|
||||
The <see cref="T:Polly.PolicyBuilder`1"/> provided to <paramref name="configurePolicy"/> has been
|
||||
preconfigured errors to handle errors in the following categories:
|
||||
<list type="bullet">
|
||||
<item><description>Network failures (as <see cref="T:System.Net.Http.HttpRequestException"/>)</description></item>
|
||||
<item><description>HTTP 5XX status codes (server errors)</description></item>
|
||||
<item><description>HTTP 408 status code (request timeout)</description></item>
|
||||
</list>
|
||||
</para>
|
||||
<para>
|
||||
The policy created by <paramref name="configurePolicy"/> will be cached indefinitely per named client. Policies
|
||||
are generally designed to act as singletons, and can be shared when appropriate. To share a policy across multiple
|
||||
named clients, first create the policy and then pass it to multiple calls to
|
||||
<see cref="M:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions.AddPolicyHandler(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage})"/> as desired.
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions.AddPolicyHandler(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func{System.IServiceProvider,System.Net.Http.HttpRequestMessage,System.String,Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage}},System.Func{System.Net.Http.HttpRequestMessage,System.String})">
|
||||
<summary>
|
||||
Adds a <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> which will surround request execution with a policy returned
|
||||
by executing provided key selection logic <paramref name="keySelector"/> and <paramref name="policyFactory"/>
|
||||
</summary>
|
||||
<param name="builder">The <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/>.</param>
|
||||
<param name="policyFactory">Selects an <see cref="T:Polly.IAsyncPolicy`1"/> to apply to the current request based on key selection.</param>
|
||||
<param name="keySelector">A delegate used to generate a policy key based on the <see cref="T:System.Net.Http.HttpRequestMessage"/>.</param>
|
||||
<returns>An <see cref="T:Microsoft.Extensions.DependencyInjection.IHttpClientBuilder"/> that can be used to configure the client.</returns>
|
||||
<remarks>
|
||||
<para>
|
||||
Key generated by <paramref name="policyFactory"/> is first used to lookup existing policies from IPolicyRegistry. If policy does not exist in the registry, create a new policy with <paramref name="policyFactory"/> and add it in IPolicyRegistry.
|
||||
</para>
|
||||
<para>
|
||||
See the remarks on <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> for guidance on configuring policies.
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Microsoft.Extensions.DependencyInjection.PollyServiceCollectionExtensions">
|
||||
<summary>
|
||||
Provides convenience extension methods to register <see cref="T:Polly.Registry.IPolicyRegistry`1"/> and
|
||||
<see cref="T:Polly.Registry.IReadOnlyPolicyRegistry`1"/> in the service collection.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.PollyServiceCollectionExtensions.AddPolicyRegistry(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
|
||||
<summary>
|
||||
Registers an empty <see cref="T:Polly.Registry.PolicyRegistry"/> in the service collection with service types
|
||||
<see cref="T:Polly.Registry.IPolicyRegistry`1"/>, <see cref="T:Polly.Registry.IReadOnlyPolicyRegistry`1"/>, and
|
||||
<see cref="T:Polly.Registry.IConcurrentPolicyRegistry`1"/> if the service types haven't already been registered
|
||||
and returns the existing or newly created registry.
|
||||
</summary>
|
||||
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</param>
|
||||
<returns>The existing or newly created <see cref="T:Polly.Registry.IPolicyRegistry`1"/>.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.PollyServiceCollectionExtensions.AddPolicyRegistry(Microsoft.Extensions.DependencyInjection.IServiceCollection,Polly.Registry.IPolicyRegistry{System.String})">
|
||||
<summary>
|
||||
Registers the provided <see cref="T:Polly.Registry.IPolicyRegistry`1"/> in the service collection with service types
|
||||
<see cref="T:Polly.Registry.IPolicyRegistry`1"/>, <see cref="T:Polly.Registry.IReadOnlyPolicyRegistry`1"/>, and
|
||||
<see cref="T:Polly.Registry.IConcurrentPolicyRegistry`1"/> and returns the provided registry.
|
||||
</summary>
|
||||
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</param>
|
||||
<param name="registry">The <see cref="T:Polly.Registry.IPolicyRegistry`1"/>.</param>
|
||||
<returns>The provided <see cref="T:Polly.Registry.IPolicyRegistry`1"/>.</returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.PollyServiceCollectionExtensions.AddPolicyRegistry(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{System.IServiceProvider,Polly.Registry.IPolicyRegistry{System.String}})">
|
||||
<summary>
|
||||
Registers an empty <see cref="T:Polly.Registry.PolicyRegistry"/> in the service collection with service types
|
||||
<see cref="T:Polly.Registry.IPolicyRegistry`1"/>, <see cref="T:Polly.Registry.IReadOnlyPolicyRegistry`1"/>, and
|
||||
<see cref="T:Polly.Registry.IConcurrentPolicyRegistry`1"/> and uses the specified delegate to configure it.
|
||||
</summary>
|
||||
<param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</param>
|
||||
<param name="configureRegistry">A delegate that is used to configure an <see cref="T:Polly.Registry.IPolicyRegistry`1"/>.</param>
|
||||
<returns>The provided <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection"/>.</returns>
|
||||
</member>
|
||||
<member name="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler">
|
||||
<summary>
|
||||
A <see cref="T:System.Net.Http.DelegatingHandler"/> implementation that executes request processing surrounded by a <see cref="T:Polly.Policy"/>.
|
||||
</summary>
|
||||
<remarks>
|
||||
<para>
|
||||
This message handler implementation supports the use of policies provided by the Polly library for
|
||||
transient-fault handling and resiliency.
|
||||
</para>
|
||||
<para>
|
||||
The documentation provided here is focused guidance for using Polly together with the <see cref="T:System.Net.Http.IHttpClientFactory"/>.
|
||||
For authoritative information on Polly, see the Polly project and its documentation (<see href="https://github.com/app-vnext/Polly"/>).
|
||||
</para>
|
||||
<para>
|
||||
The extension methods on <see cref="T:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions"/> are designed as a convenient and correct
|
||||
way to create a <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/>.
|
||||
</para>
|
||||
<para>
|
||||
The <see cref="M:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions.AddPolicyHandler(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage})"/>
|
||||
method supports the creation of a <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> for any kind of policy. This includes
|
||||
non-reactive policies, such as Timeout or Cache, which don't require the underlying request to fail first.
|
||||
</para>
|
||||
<para>
|
||||
<see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> and the <see cref="T:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions"/> convenience methods
|
||||
only accept the generic <see cref="T:Polly.IAsyncPolicy`1"/>. Generic policy instances can be created
|
||||
by using the generic methods on <see cref="T:Polly.Policy"/> such as <see cref="M:Polly.Policy.TimeoutAsync``1(System.Int32)"/>.
|
||||
</para>
|
||||
<para>
|
||||
To adapt an existing non-generic <see cref="T:Polly.IAsyncPolicy"/>, use code like the following that converts a
|
||||
non-generic <c>IAsyncPolicy policy</c> to <see cref="T:Polly.IAsyncPolicy`1"/>:
|
||||
<code lang="csharp">
|
||||
policy.AsAsyncPolicy<HttpResponseMessage>()
|
||||
</code>
|
||||
</para>
|
||||
<para>
|
||||
The <see cref="M:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions.AddTransientHttpErrorPolicy(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func{Polly.PolicyBuilder{System.Net.Http.HttpResponseMessage},Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage}})"/>
|
||||
method is an opinionated convenience method that supports the application of a policy for requests that fail due
|
||||
to a connection failure or server error (5XX HTTP status code). This kind of method supports only reactive policies
|
||||
such as Retry, Circuit-Breaker, or Fallback. This method is only provided for convenience; we recommend creating
|
||||
your own policies as needed if this does not meet your requirements.
|
||||
</para>
|
||||
<para>
|
||||
Take care when using policies such as Retry or Timeout together as HttpClient provides its own timeout via
|
||||
<see cref="P:System.Net.Http.HttpClient.Timeout"/>. When combining Retry and Timeout, <see cref="P:System.Net.Http.HttpClient.Timeout"/> will act as a
|
||||
timeout across all tries; a Polly Timeout policy can be configured after a Retry policy in the configuration sequence,
|
||||
to provide a timeout-per-try.
|
||||
</para>
|
||||
<para>
|
||||
All policies provided by Polly are designed to be efficient when used in a long-lived way. Certain policies such as the
|
||||
Bulkhead and Circuit-Breaker maintain state and should be scoped across calls you wish to share the Bulkhead or Circuit-Breaker state.
|
||||
Take care to ensure the correct lifetimes when using policies and message handlers together in custom scenarios. The extension
|
||||
methods provided by <see cref="T:Microsoft.Extensions.DependencyInjection.PollyHttpClientBuilderExtensions"/> are designed to assign a long lifetime to policies
|
||||
and ensure that they can be used when the handler rotation feature is active.
|
||||
</para>
|
||||
<para>
|
||||
The <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> attaches a context to the <see cref="T:System.Net.Http.HttpRequestMessage"/> prior
|
||||
to executing a <see cref="T:Polly.Policy"/>, if one does not already exist. The <see cref="T:Polly.Context"/> is provided
|
||||
to the policy for use inside the <see cref="T:Polly.Policy"/> and in other message handlers.
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.Http.PolicyHttpMessageHandler.#ctor(Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage})">
|
||||
<summary>
|
||||
Creates a new <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/>.
|
||||
</summary>
|
||||
<param name="policy">The policy.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.Http.PolicyHttpMessageHandler.#ctor(System.Func{System.Net.Http.HttpRequestMessage,Polly.IAsyncPolicy{System.Net.Http.HttpResponseMessage}})">
|
||||
<summary>
|
||||
Creates a new <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/>.
|
||||
</summary>
|
||||
<param name="policySelector">A function which can select the desired policy for a given <see cref="T:System.Net.Http.HttpRequestMessage"/>.</param>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.Http.PolicyHttpMessageHandler.SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.Http.PolicyHttpMessageHandler.SendCoreAsync(System.Net.Http.HttpRequestMessage,Polly.Context,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Called inside the execution of the <see cref="T:Polly.Policy"/> to perform request processing.
|
||||
</summary>
|
||||
<param name="request">The <see cref="T:System.Net.Http.HttpRequestMessage"/>.</param>
|
||||
<param name="context">The <see cref="T:Polly.Context"/>.</param>
|
||||
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/>.</param>
|
||||
<returns>Returns a <see cref="T:System.Threading.Tasks.Task`1"/> that will yield a response when completed.</returns>
|
||||
</member>
|
||||
<member name="P:Microsoft.Extensions.Http.Resources.PolicyHttpMessageHandler_PolicySelector_ReturnedNull">
|
||||
<summary>The '{0}' function must return a non-null policy instance. To create a policy that takes no action, use '{1}'.</summary>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.Http.Resources.FormatPolicyHttpMessageHandler_PolicySelector_ReturnedNull(System.Object,System.Object)">
|
||||
<summary>The '{0}' function must return a non-null policy instance. To create a policy that takes no action, use '{1}'.</summary>
|
||||
</member>
|
||||
<member name="T:Polly.HttpRequestMessageExtensions">
|
||||
<summary>
|
||||
Extension methods for <see cref="T:System.Net.Http.HttpRequestMessage"/> Polly integration.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Polly.HttpRequestMessageExtensions.GetPolicyExecutionContext(System.Net.Http.HttpRequestMessage)">
|
||||
<summary>
|
||||
Gets the <see cref="T:Polly.Context"/> associated with the provided <see cref="T:System.Net.Http.HttpRequestMessage"/>.
|
||||
</summary>
|
||||
<param name="request">The <see cref="T:System.Net.Http.HttpRequestMessage"/>.</param>
|
||||
<returns>The <see cref="T:Polly.Context"/> if set, otherwise <c>null</c>.</returns>
|
||||
<remarks>
|
||||
The <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> will attach a context to the <see cref="T:System.Net.Http.HttpResponseMessage"/> prior
|
||||
to executing a <see cref="T:Polly.Policy"/>, if one does not already exist. The <see cref="T:Polly.Context"/> will be provided
|
||||
to the policy for use inside the <see cref="T:Polly.Policy"/> and in other message handlers.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:Polly.HttpRequestMessageExtensions.SetPolicyExecutionContext(System.Net.Http.HttpRequestMessage,Polly.Context)">
|
||||
<summary>
|
||||
Sets the <see cref="T:Polly.Context"/> associated with the provided <see cref="T:System.Net.Http.HttpRequestMessage"/>.
|
||||
</summary>
|
||||
<param name="request">The <see cref="T:System.Net.Http.HttpRequestMessage"/>.</param>
|
||||
<param name="context">The <see cref="T:Polly.Context"/>, may be <c>null</c>.</param>
|
||||
<remarks>
|
||||
The <see cref="T:Microsoft.Extensions.Http.PolicyHttpMessageHandler"/> will attach a context to the <see cref="T:System.Net.Http.HttpResponseMessage"/> prior
|
||||
to executing a <see cref="T:Polly.Policy"/>, if one does not already exist. The <see cref="T:Polly.Context"/> will be provided
|
||||
to the policy for use inside the <see cref="T:Polly.Policy"/> and in other message handlers.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
|
||||
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
|
||||
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
|
||||
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
|
||||
<summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
|
||||
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
|
||||
<summary>Initializes the attribute with the specified return value condition.</summary>
|
||||
<param name="returnValue">
|
||||
The return value condition. If the method returns this value, the associated parameter may be null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
|
||||
<summary>Gets the return value condition.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
|
||||
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
|
||||
<summary>Initializes the attribute with the specified return value condition.</summary>
|
||||
<param name="returnValue">
|
||||
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
|
||||
<summary>Gets the return value condition.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
|
||||
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
|
||||
<summary>Initializes the attribute with the associated parameter name.</summary>
|
||||
<param name="parameterName">
|
||||
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
|
||||
<summary>Gets the associated parameter name.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
|
||||
<summary>Applied to a method that will never return under any circumstance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
|
||||
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
|
||||
<summary>Initializes the attribute with the specified parameter value.</summary>
|
||||
<param name="parameterValue">
|
||||
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
|
||||
the associated parameter matches this value.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
|
||||
<summary>Gets the condition parameter value.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
|
||||
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
|
||||
<summary>Initializes the attribute with a field or property member.</summary>
|
||||
<param name="member">
|
||||
The field or property member that is promised to be not-null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
|
||||
<summary>Initializes the attribute with the list of field and property members.</summary>
|
||||
<param name="members">
|
||||
The list of field and property members that are promised to be not-null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
|
||||
<summary>Gets field or property member names.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
|
||||
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
|
||||
<summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
|
||||
<param name="returnValue">
|
||||
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||
</param>
|
||||
<param name="member">
|
||||
The field or property member that is promised to be not-null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
|
||||
<summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
|
||||
<param name="returnValue">
|
||||
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||
</param>
|
||||
<param name="members">
|
||||
The list of field and property members that are promised to be not-null.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
|
||||
<summary>Gets the return value condition.</summary>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
|
||||
<summary>Gets field or property member names.</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
FMtDzjnDBzNRcgebgRRWYQf01leMzDCDRd8gCJV6Zi6oN4yIvQ/dvgQ2lN7dJuZJPe9+U0wQW762P6axKGHuFg==
|
||||
Reference in New Issue
Block a user