我有一个扩展方法如下。
public static class ExtensionMethod
{
public static string GetTableName<T>(this ObjectContext context) where T : class
{
//Content
}
}
我调用此方法如下。
static void Main(string[] args)
{
using (BreakAwayEntities context = new BreakAwayEntities())
{
Customer cus = context.Customers.First();
ObjectStateEntry entry = context.ObjectStateManager.GetObjectStateEntry(cus);
Type t = entry.Entity.GetType();
MethodInfo method = typeof(ExtensionMethod).GetMethod("GetTableName");
MethodInfo genericMethod = method.MakeGenericMethod(t);
genericMethod.Invoke(null, null);
}
}
但是在代码的最后一行“genericMethod.Invoke(null,null)”会引发异常“参数计数不匹配”。 有人可以帮忙吗?
答案 0 :(得分:0)
GetTableName方法有一个参数,但是你正在调用Invoke,第二个参数为null,表示不应该传递任何参数。您需要将ObjectContext作为第二个参数传递:
genericMethod.Invoke(null, new object[] { context });