我想打电话给Invoke()
但它总是抛出:无法调用invoke()
对象不匹配目标类型
我不知道以什么作为第一通参数 - 假设这是问题 - 我尝试了许多事情,但都没有运气。下面进入我的代码:
var method = typeof(IBaseRepository<>).MakeGenericType(typeof(Domain.Model.Basic.City))
.GetMethod("Get", BindingFlags.Instance | BindingFlags.Public);
var entityData = method.Invoke(??, new[] { (object)id });
的BaseRepository
是:
public class BaseRepository<T> : IBaseRepository<T>
{
public virtual T Get(object id) { }
}
City
类是:
public class City : Entity
而且Entity
是一个抽象类:
public abstract class Entity
作为第一个Invoke的参数,我尝试过使用City
的实例 - 这应该是正确的情况 - Entity
的实例以及其他我确信实际上无法正常工作的实例。
你有'''''''''''''''''''''''''''''''''''' –
具体而言,根据您的类定义实现IBaseRepository' –
的实例必须是新的BaseRepository(),因为“Invoke”的第一个参数被记录为“调用方法或构造函数的对象” –
dlatikay