/// <summary> /// Initializes a new instance of the <see cref="QueueServiceClient"/> /// class. /// </summary> /// <param name="serviceUri"> /// A <see cref="Uri"/> referencing the queue service. /// This is likely to be similar to "https://{account_name}.queue.core.windows.net". /// </param> /// <param name="clientConfiguration"> /// <see cref="QueueClientConfiguration"/>. /// </param> internal QueueServiceClient( Uri serviceUri, QueueClientConfiguration clientConfiguration) { Argument.AssertNotNull(serviceUri, nameof(serviceUri)); Argument.AssertNotNull(clientConfiguration, nameof(clientConfiguration)); _uri = serviceUri; _clientConfiguration = clientConfiguration; _serviceRestClient = BuildServiceRestClient(); }
/// <summary> /// Gets the properties of the queue service. /// /// For more information, see /// <see href="https://docs.microsoft.com/rest/api/storageservices/get-queue-service-properties"> /// Get Queue Service Properties</see>. /// </summary> /// <param name="async"> /// Whether to invoke the operation asynchronously. /// </param> /// <param name="cancellationToken"> /// <see cref="CancellationToken"/> /// </param> /// <returns> /// <see cref="Response{QueueServiceProperties}"/> /// </returns> private async Task <Response <QueueServiceProperties> > GetPropertiesInternal( bool async, CancellationToken cancellationToken) { using (ClientConfiguration.Pipeline.BeginLoggingScope(nameof(QueueServiceClient))) { ClientConfiguration.Pipeline.LogMethodEnter( nameof(QueueServiceClient), message: $"{nameof(Uri)}: {Uri}"); DiagnosticScope scope = ClientConfiguration.ClientDiagnostics.CreateScope($"{nameof(QueueServiceClient)}.{nameof(GetProperties)}"); try { ResponseWithHeaders <QueueServiceProperties, ServiceGetPropertiesHeaders> response; scope.Start(); if (async) { response = await ServiceRestClient.GetPropertiesAsync( cancellationToken : cancellationToken) .ConfigureAwait(false); } else { response = ServiceRestClient.GetProperties( cancellationToken: cancellationToken); } return(Response.FromValue( response.Value, response.GetRawResponse())); } catch (Exception ex) { ClientConfiguration.Pipeline.LogException(ex); scope.Failed(ex); throw; } finally { ClientConfiguration.Pipeline.LogMethodExit(nameof(QueueServiceClient)); scope.Dispose(); } } }
/// <summary> /// Initializes a new instance of the <see cref="QueueServiceClient"/> /// class. /// </summary> /// <param name="connectionString"> /// A connection string includes the authentication information /// required for your application to access data in an Azure Storage /// account at runtime. /// /// For more information, see /// <see href="https://docs.microsoft.com/azure/storage/common/storage-configure-connection-string"> /// Configure Azure Storage connection strings</see>. /// </param> /// <param name="options"> /// Optional client options that define the transport pipeline /// policies for authentication, retries, etc., that are applied to /// every request. /// </param> public QueueServiceClient(string connectionString, QueueClientOptions options) { var conn = StorageConnectionString.Parse(connectionString); _uri = conn.QueueEndpoint; options ??= new QueueClientOptions(); _clientConfiguration = new QueueClientConfiguration( pipeline: options.Build(conn.Credentials), sharedKeyCredential: conn.Credentials as StorageSharedKeyCredential, clientDiagnostics: new StorageClientDiagnostics(options), version: options.Version, clientSideEncryption: QueueClientSideEncryptionOptions.CloneFrom(options._clientSideEncryptionOptions), messageEncoding: options.MessageEncoding, queueMessageDecodingFailedHandlers: options.GetMessageDecodingFailedHandlers()); _serviceRestClient = BuildServiceRestClient(); }
/// <summary> /// Initializes a new instance of the <see cref="QueueServiceClient"/> /// class. /// </summary> /// <param name="serviceUri"> /// A <see cref="Uri"/> referencing the queue service. /// This is likely to be similar to "https://{account_name}.queue.core.windows.net". /// </param> /// <param name="authentication"> /// An optional authentication policy used to sign requests. /// </param> /// <param name="options"> /// Optional client options that define the transport pipeline /// policies for authentication, retries, etc., that are applied to /// every request. /// </param> /// <param name="storageSharedKeyCredential"> /// The shared key credential used to sign requests. /// </param> internal QueueServiceClient( Uri serviceUri, HttpPipelinePolicy authentication, QueueClientOptions options, StorageSharedKeyCredential storageSharedKeyCredential) { Argument.AssertNotNull(serviceUri, nameof(serviceUri)); _uri = serviceUri; options ??= new QueueClientOptions(); _clientConfiguration = new QueueClientConfiguration( pipeline: options.Build(authentication), sharedKeyCredential: storageSharedKeyCredential, clientDiagnostics: new StorageClientDiagnostics(options), version: options.Version, clientSideEncryption: QueueClientSideEncryptionOptions.CloneFrom(options._clientSideEncryptionOptions), messageEncoding: options.MessageEncoding, queueMessageDecodingFailedHandlers: options.GetMessageDecodingFailedHandlers()); _serviceRestClient = BuildServiceRestClient(); }