use*_*402 6 c# generics reflection sqlite-net
我想知道如何在 C# 中使用反射来调用以下方法:
public static List<T> GetAllWithChildren<T>
(this SQLiteConnection conn, Expression<Func<T, bool>> filter = null, bool recursive = false)
where T
#if USING_MVVMCROSS: new() #else : class #endif
{
}
Run Code Online (Sandbox Code Playgroud)
我当前的代码是:
MethodInfo methodInfo = typeof(ReadOperations).GetMethod("GetWithChildren", BindingFlags.Static | BindingFlags.Public | BindingFlags.FlattenHierarchy);
Type predicateType = predicate.GetType();
MethodInfo genericMethod = methodInfo.MakeGenericMethod(predicateType);
Type[] genericArgumentsType = genericMethod.GetGenericArguments();
Debug.WriteLine("Arguments Number:" + genericArgumentsType.Count());
int count = 0;
foreach (Type ga in genericArgumentsType)
{
Console.WriteLine(count++ + " " + ga.GetType());
}
Object[] genericArguments = { conn, predicate, true };
genericMethod.Invoke(conn, genericArguments);
Run Code Online (Sandbox Code Playgroud)
返回的参数数量是 1 ...这是错误的,但我不知道为什么系统返回给我这个数字。
调用方法因参数数量错误而失败。
欢迎任何帮助!
| 归档时间: |
|
| 查看次数: |
1308 次 |
| 最近记录: |