public CloudBlobContainerEx(CloudBlobClientEx cloudBlobClient, Func <CloudBlobClient, CloudBlobContainer> ctorFunc)
        {
            if (cloudBlobClient == null)
            {
                throw new ArgumentNullException(nameof(cloudBlobClient));
            }

            if (ctorFunc == null)
            {
                throw new ArgumentNullException(nameof(ctorFunc));
            }


            this.cloudBlobClient   = cloudBlobClient;
            this.failoverContainer = ((IFailoverContainerContainerProvider <CloudBlobClient>)cloudBlobClient)
                                     .FailoverContainer.CreateChildContainer(ctorFunc);
        }
        public CloudStorageAccountEx(params CloudStorageAccount[] accounts)
        {
            if (accounts == null)
            {
                throw new ArgumentNullException(nameof(accounts));
            }

            if (accounts.Length == 0)
            {
                throw new ArgumentException(nameof(accounts));
            }


            FailoverToken failoverToken = new FailoverToken(accounts.Length);

            this.failoverContainer = new FailoverContainer <CloudStorageAccount>(failoverToken, accounts);
        }