/// <summary> /// Initializes a new instance of the AbstractionContext class. /// </summary> /// <param name="tokenSource">A Cancellation token source.</param> /// <param name="logger">A logger instance.</param> /// <param name="httpOperationTimeout">The HTTP operation timeout.</param> /// <param name="retryPolicy">The retry policy.</param> public AbstractionContext(CancellationTokenSource tokenSource, ILogger logger, TimeSpan httpOperationTimeout, IRetryPolicy retryPolicy) { this.RetryPolicy = retryPolicy; tokenSource.ArgumentNotNull("tokenSource"); logger.ArgumentNotNull("logger"); this.CancellationTokenSource = tokenSource; this.Logger = logger; this.HttpOperationTimeout = httpOperationTimeout; }