Учитывая CloudTableQuery / DataServiceQuery, вернуть связанный TableServiceContext - PullRequest
1 голос
/ 01 апреля 2012

Учитывая CloudTableQuery и / или DataServiceQuery, возможно ли получить TableServiceContext, который произвел запрос?

1 Ответ

2 голосов
/ 02 апреля 2012

Да, это возможно с помощью отражения.Вот метод расширения, который будет делать это для каждого IQueryable (поддерживая как CloudTableQuery, так и DataServiceQuery):

using System;
using System.Linq;
using System.Reflection;

using Microsoft.WindowsAzure.StorageClient;

public static class DataServiceQueryExtensions
{
    public static TableServiceContext GetTableServiceContext<TType>(this IQueryable<TType> query)
    {
        var contextField = query.Provider.GetType().GetField("Context", (BindingFlags.Instance | BindingFlags.NonPublic));
        if (contextField == null)
            return null;
        else
            return contextField.GetValue(query.Provider) as TableServiceContext;
    }
}

Надеюсь, это поможет.

Sandrino

...