我对这个方法有错误。
public static FReturn<T> GetByParameters<T>(FObjectParametersb parameters, bool useOr = false) where T : new();
public class FObjectParameters : ICollection<FObjectParameter>, IEnumerable<FObjectParameter>, IEnumerable
{
//some code
}
var parameters = new FObjectParameters();
foreach (KeyValuePair<string, string> item in Param)
parameters.Add(item.Key, item.Value);
var getMethod = MainType.BaseType.BaseType.GetMethod("GetByParameters").MakeGenericMethod(MainType);
object Invoke = getMethod.Invoke(null, new object[] { parameters });
答案 0 :(得分:2)
您似乎需要提供可选参数
object Invoke = getMethod.Invoke(null, new object[] { parameters, false });
我想这是因为你直接用Reflection调用方法,所以没有编译器魔法。我想当你使用可选参数时,如果你不提供可选参数,编译器通过传递默认值来调用方法所以在这种情况下你需要提供它,即使它是可选的...