我正在尝试MethodInfo从方法中获取 ,TableExists<T>以便我可以使用类型调用它。
该方法在OrmLiteSchemaApi类中声明。有2个重载:
public static bool TableExists<T>(this IDbConnection dbConn)
{
// code omitted
}
public static bool TableExists(this IDbConnection dbConn, string tableName, string schema = null)
{
// code omitted
}
Run Code Online (Sandbox Code Playgroud)
我试图得到MethodInfo这样的:
var tableMethod = typeof(OrmLiteSchemaApi).GetMethod("TableExists");
Run Code Online (Sandbox Code Playgroud)
但它会产生异常:
System.Reflection.AmbiguousMatchException: '找到了不明确的匹配。'
我只能找到一个与此相关的旧问题,该问题建议将空对象数组作为参数传递,但这似乎不适用于 .net 核心。
我想我需要指定特定的重载,但我不确定具体如何。
我如何获得MethodInfo?
Dav*_*vid 11
您可以使用GetMethods(复数!)获取所有匹配方法的数组,然后查找具有以下内容的方法IsGenericMethod:
var tm = typeof(OrmLiteSchemaApi)
.GetMethods()
.Where(x => x.Name == "TableExists")
.FirstOrDefault(x => x.IsGenericMethod);
Run Code Online (Sandbox Code Playgroud)
我建议这样做而不是使用参数说明符,因为它会给你一个对象,如果有任何问题,你可以在调试时逐步完成。
| 归档时间: |
|
| 查看次数: |
11117 次 |
| 最近记录: |