我正在尝试从Azure ExecuteQuery
获取方法CloudTable
。
这个名称有四种方法。
public virtual IEnumerable<TElement> ExecuteQuery<TElement>(TableQuery<TElement> query, TableRequestOptions requestOptions = null, OperationContext operationContext = null) where TElement : ITableEntity, new();
public virtual IEnumerable<DynamicTableEntity> ExecuteQuery(TableQuery query, TableRequestOptions requestOptions = null, OperationContext operationContext = null);
public virtual IEnumerable<TResult> ExecuteQuery<TElement, TResult>(TableQuery<TElement> query, EntityResolver<TResult> resolver, TableRequestOptions requestOptions = null, OperationContext operationContext = null) where TElement : ITableEntity, new();
public virtual IEnumerable<TResult> ExecuteQuery<TResult>(TableQuery query, EntityResolver<TResult> resolver, TableRequestOptions requestOptions = null, OperationContext operationContext = null);
我想要的是第一个。我正在使用以下代码。
var testQuery = new TableQuery<TestEntity>();
var methodInfo = typeof(CloudTable).GetMethod("ExecuteQuery", new[] { testQuery.GetType(), typeof(TableRequestOptions), typeof(OperationContext) });
但是,methodInfo的结果为 null 。为什么它找不到指定的方法?当我看起来返回null意味着没有这样的方法。顺便说一句,TestEntity是一个继承自TableEntity的虚拟类,并依次实现接口ITableEntity。因此,指定方法符合条件。
我将在运行时由反射创建的类上使用此方法。因此,我试图以这种方式获得方法。