/// <summary> /// Constructs AzureSTorageTable from track 2 TableClient. /// Internally it construcs track 1 CloudTable for property display purpose only. /// </summary> /// <param name="tableClient"></param> public AzureStorageTable(TableClient tableClient) { this.TableClient = tableClient; this.Name = tableClient.Name; Uri uri = (Uri)typeof(TableClient) .GetField("_endpoint", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) .GetValue(tableClient); this.Uri = new Uri($"{uri.AbsoluteUri}{(uri.AbsoluteUri.EndsWith("/") ? string.Empty : "/")}{Name}"); // This constructed CloudTable is only for display purpose. // Without credential content, it wouldn't work for data plane operations. // Customer, who uses oauth, should use track 2 TableClient instead. this.CloudTable = new CloudTable(Uri); }