Table of Contents

AzureQueue Constructor

Definition

Namespace
Savvyio.Extensions.QueueStorage
Assemblies
Savvyio.Extensions.QueueStorage.dll
Source
src/Savvyio.Extensions.QueueStorage/AzureQueue.cs

AzureQueue(IMarshaller, AzureQueueOptions, QueueServiceClient, QueueClient, Func<IMessage<TRequest>, IMarshaller, string>, Func<QueueMessage, IMarshaller, IMessage<TRequest>>)

Initializes a new instance of the AzureQueue<TRequest> class with testable Azure Storage Queue clients.

protected AzureQueue(IMarshaller marshaller, AzureQueueOptions options, QueueServiceClient serviceClient, QueueClient client, Func<IMessage<TRequest>, IMarshaller, string> sendMessageFormatter = null, Func<QueueMessage, IMarshaller, IMessage<TRequest>> receiveMessageFormatter = null)

Parameters

marshaller IMarshaller

The marshaller used for serializing and deserializing messages.

options AzureQueueOptions

The AzureQueueOptions used to configure this instance.

serviceClient QueueServiceClient

The queue service client to use.

client QueueClient

The queue client to use.

sendMessageFormatter Func<IMessage<TRequest>, IMarshaller, string>

The function delegate to format messages for sending. If null, a default formatter is used.

receiveMessageFormatter Func<QueueMessage, IMarshaller, IMessage<TRequest>>

The function delegate to format messages for receiving. If null, a default formatter is used.

Exceptions

ArgumentNullException

marshaller cannot be null - or - options cannot be null - or - serviceClient cannot be null - or - client cannot be null.

ArgumentException

options are not in a valid state.

AzureQueue(IMarshaller, AzureQueueOptions, Func<IMessage<TRequest>, IMarshaller, string>, Func<QueueMessage, IMarshaller, IMessage<TRequest>>)

Initializes a new instance of the AzureQueue<TRequest> class.

protected AzureQueue(IMarshaller marshaller, AzureQueueOptions options, Func<IMessage<TRequest>, IMarshaller, string> sendMessageFormatter = null, Func<QueueMessage, IMarshaller, IMessage<TRequest>> receiveMessageFormatter = null)

Parameters

marshaller IMarshaller

The marshaller used for serializing and deserializing messages.

options AzureQueueOptions

The AzureQueueOptions used to configure this instance.

sendMessageFormatter Func<IMessage<TRequest>, IMarshaller, string>

The function delegate to format messages for sending. If null, a default formatter is used.

receiveMessageFormatter Func<QueueMessage, IMarshaller, IMessage<TRequest>>

The function delegate to format messages for receiving. If null, a default formatter is used.

Remarks

The following table shows the initial field values for an instance of AzureQueue<TRequest>.

FieldInitial Value
Savvyio.Extensions.QueueStorage.AzureQueue<TRequest>._sendMessageFormatter
        <pre><code class="lang-csharp">(message, marshaller) =>
{
    var base64Type = message.GetType()
        .ToFullNameIncludingAssemblyName()
        .ToByteArray()
        .ToBase64String();
    var base64Message = marshaller.Serialize(message)
        .ToByteArray()
        .ToBase64String();
    return $"{base64Type}.{base64Message}";
};</code></pre>

    </td></tr><tr><td class="term"><xref href="Savvyio.Extensions.QueueStorage.AzureQueue%601._receiveMessageFormatter" data-throw-if-not-resolved="false"></xref></td><td class="description">

        <pre><code class="lang-csharp">(rawMessage, marshaller) =>
{
    var base64Components = rawMessage.MessageText.Split('.');
    var type = Type.GetType(base64Components[0].FromBase64().ToEncodedString());
    return marshaller.Deserialize(base64Components[1].FromBase64().ToStream(), type) as IMessage<TRequest>;
};</code></pre>

    </td></tr></tbody></table>

Exceptions

ArgumentNullException

marshaller cannot be null - or - options cannot be null.

ArgumentException

options are not in a valid state.