获得具有反射的通用方法

时间:2016-06-03 06:33:31

标签: c# generics reflection

我正在尝试从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。因此,指定方法符合条件。

我将在运行时由反射创建的类上使用此方法。因此,我试图以这种方式获得方法。

0 个答案:

没有答案