<PackageReference Include="Polly.Core" Version="8.1.0" />

TimeoutResiliencePipelineBuilderExtensions

Extensions for adding timeout to ResiliencePipelineBuilder.
using Polly.Timeout; using Polly.Utils; using System; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; namespace Polly { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public static class TimeoutResiliencePipelineBuilderExtensions { public static TBuilder AddTimeout<[System.Runtime.CompilerServices.Nullable(0)] TBuilder>(this TBuilder builder, TimeSpan timeout) where TBuilder : ResiliencePipelineBuilderBase { Guard.NotNull(builder, "builder"); return builder.AddTimeout(new TimeoutStrategyOptions { Timeout = timeout }); } [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(TimeoutStrategyOptions))] [UnconditionalSuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "All options members preserved.")] public static TBuilder AddTimeout<[System.Runtime.CompilerServices.Nullable(0)] TBuilder>(this TBuilder builder, TimeoutStrategyOptions options) where TBuilder : ResiliencePipelineBuilderBase { Guard.NotNull(builder, "builder"); Guard.NotNull(options, "options"); builder.AddStrategy((StrategyBuilderContext context) => new TimeoutResilienceStrategy(options, context.TimeProvider, context.Telemetry), options); return builder; } } }