读书人

Expression.Call的有关问题

发布时间: 2013-08-09 15:16:24 作者: rapoo

Expression.Call的问题
本帖最后由 z1101385391 于 2013-07-16 12:06:17 编辑


public IEnumerator<TEntity> GetEnumerator()
{
return Execute<IEnumerator<TEntity>>(Expression.Call(Expression,
(MethodInfo)MethodBase.GetCurrentMethod()));
}


像上面这么写会报这个错误
方法 System.Collections.Generic.IEnumerator`1[TEntity] GetEnumerator() 包含泛型参数
改成这样

public IEnumerator<TEntity> GetEnumerator()
{
return Execute<IEnumerator<TEntity>>(Expression.Call(Expression,
((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TEntity))));
}


会报这个错误
System.Collections.Generic.IEnumerator`1[TEntity] GetEnumerator() 不是 GenericMethodDefinition。只能对 MethodBase.IsGenericMethodDefinition 为 True 的方法调用 MakeGenericMethod。

要怎么写才是正确的?
[解决办法]
Execute方法在哪里定义的。

读书人网 >.NET

热点推荐