GeoRedundantReadPolicy
This policy is used if the SecondaryUri property is passed in on the clientOptions. It allows for storage
            accounts configured with RA-GRS to retry GET or HEAD requests against the secondary storage Uri.
            
                using Azure.Core;
using Azure.Core.Pipeline;
using System;
namespace Azure.Storage
{
    internal class GeoRedundantReadPolicy : HttpPipelineSynchronousPolicy
    {
        private readonly string _secondaryStorageHost;
        public GeoRedundantReadPolicy(Uri secondaryStorageUri)
        {
            if (secondaryStorageUri == (Uri)null)
                throw Errors.ArgumentNull("secondaryStorageUri");
            _secondaryStorageHost = secondaryStorageUri.Host;
        }
        public override void OnSendingRequest(HttpMessage message)
        {
            if (!(message.Request.Method != RequestMethod.Get) || !(message.Request.Method != RequestMethod.Head)) {
                object value;
                string text = message.TryGetProperty("AlternateHostKey", out value) ? (value as string) : null;
                object value2;
                if (text == null)
                    message.SetProperty("AlternateHostKey", _secondaryStorageHost);
                else if (!message.TryGetProperty("ResourceNotReplicated", out value2) || !(bool)value2) {
                    string host = message.Request.Uri.Host;
                    if (message.HasResponse && message.Response.Status == 404 && host == _secondaryStorageHost)
                        message.SetProperty("ResourceNotReplicated", true);
                    message.Request.Uri.Host = text;
                    message.SetProperty("AlternateHostKey", host);
                }
            }
        }
    }
}