<PackageReference Include="System.ClientModel" Version="1.1.0-beta.7" />

ClientPipelineOptions

public class ClientPipelineOptions
Options that control the creation of a ClientPipeline used by a service client to send and receive HTTP messages. Service clients must create a client-specific subtype of this class to pass to their constructors to allow for service-specific options with a client-wide scope.
using System.ClientModel.Internal; using System.Runtime.CompilerServices; namespace System.ClientModel.Primitives { [System.Runtime.CompilerServices.NullableContext(2)] [System.Runtime.CompilerServices.Nullable(0)] public class ClientPipelineOptions { [System.Runtime.CompilerServices.Nullable(1)] private static readonly ClientPipelineOptions _defaultOptions = new ClientPipelineOptions(); private bool _frozen; private PipelinePolicy _retryPolicy; private PipelineTransport _transport; private TimeSpan? _timeout; [System.Runtime.CompilerServices.Nullable(1)] internal static ClientPipelineOptions Default { [System.Runtime.CompilerServices.NullableContext(1)] get { return _defaultOptions; } } public PipelinePolicy RetryPolicy { get { return _retryPolicy; } set { AssertNotFrozen(); _retryPolicy = value; } } public PipelineTransport Transport { get { return _transport; } set { AssertNotFrozen(); _transport = value; } } public TimeSpan? NetworkTimeout { get { return _timeout; } set { AssertNotFrozen(); _timeout = value; } } [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] [field: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] internal PipelinePolicy[] PerCallPolicies { [return: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] get; [param: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] set; } [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] [field: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] internal PipelinePolicy[] PerTryPolicies { [return: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] get; [param: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] set; } [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] [field: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] internal PipelinePolicy[] BeforeTransportPolicies { [return: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] get; [param: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] set; } [System.Runtime.CompilerServices.NullableContext(1)] public void AddPolicy(PipelinePolicy policy, PipelinePosition position) { Argument.AssertNotNull(policy, "policy"); AssertNotFrozen(); switch (position) { case PipelinePosition.PerCall: PerCallPolicies = AddPolicy(policy, PerCallPolicies); break; case PipelinePosition.PerTry: PerTryPolicies = AddPolicy(policy, PerTryPolicies); break; case PipelinePosition.BeforeTransport: BeforeTransportPolicies = AddPolicy(policy, BeforeTransportPolicies); break; default: throw new ArgumentException($"""{position}"""); } } [System.Runtime.CompilerServices.NullableContext(1)] internal static PipelinePolicy[] AddPolicy(PipelinePolicy policy, [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] PipelinePolicy[] policies) { if (policies == null) policies = new PipelinePolicy[1]; else { PipelinePolicy[] array = new PipelinePolicy[policies.Length + 1]; policies.CopyTo(array.AsSpan()); policies = array; } policies[policies.Length - 1] = policy; return policies; } public virtual void Freeze() { _frozen = true; } protected void AssertNotFrozen() { if (_frozen) throw new InvalidOperationException("Cannot change a ClientPipelineOptions instance after it has been used to create a ClientPipeline."); } } }