我想通过反思识别以下方法:
String.Concat(params string[] args);
这就是我的尝试:
MethodInfo concatMethod = typeof(string).GetMethod("Concat", new Type[] { typeof(string[]) });
正确识别该方法,但是当我尝试调用它时:
object concatResult = concatMethod.Invoke(null, new object[] { "A", "B" });
我得到以下异常:
TargetParameterCountException: Parameter count mismatch.
另请注意,我将null
作为实例参数传递给Invoke
方法,这是因为该方法是静态的,因此不需要实例。这种方法是否正确?
PS :我想模拟以下调用:
String.Concat("A", "B");
答案 0 :(得分:4)
输入数组的每个元素都是方法的参数。您Concat
的重载需要一个string[]
参数,因此您需要:
object concatResult = concatMethod.Invoke(null, new object[] { new string[] { "A", "B" } });