如果有CloudTableQuery
和/或DataServiceQuery
,是否可以获得产生查询的TableServiceContext
?
答案 0 :(得分:2)
是的,这可以使用反射。这是一个扩展方法,它将为每个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