【问题标题】:Error binding to target method绑定到目标方法时出错
【发布时间】:2013-06-06 05:58:49
【问题描述】:

我正在尝试从帮助类调用静态方法,其类型直到运行时才知道。我以为我已经解决了这个问题,但是我收到以下错误 -

“错误绑定到目标方法。”

谁能看出这段代码有什么问题?任何帮助将不胜感激..

    Delegate del = Delegate.CreateDelegate(typeof(Func<string>),
                    typeof(RepositoryStringExtensions).GetMethod("GetTableName", BindingFlags.Static | BindingFlags.Public)
                    .MakeGenericMethod(new Type[] { objectType })) as Func<string>;

    string tableName = (string)del.DynamicInvoke(context);

上面的“objecttype”类型可以是任何类,“RepositoryStringExtensions”是包含该方法的辅助类,它试图调用的方法如下所示-

    public static string GetTableName<T>(this DbContext context) where T : class
    {
        ObjectContext objectContext = ((IObjectContextAdapter)context).ObjectContext;

        return objectContext.GetTableNameByObject<T>();
    }

【问题讨论】:

    标签: c# dynamic reflection


    【解决方案1】:

    您应该使用Func&lt;DbContext, string&gt; 而不是Func&lt;string&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多