0

我有一个扩展方法如下。

 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)”抛出异常“参数计数不匹配”。任何人都可以帮忙吗?

4

1 回答 1

0

GetTableName 方法有一个参数,但您调用 Invoke 时,第二个参数为 null,表示不应传递任何参数。您需要将 ObjectContext 作为第二个参数传递:

genericMethod.Invoke(null, new object[] { context });
于 2012-06-01T15:47:29.487 回答