Mat*_*ero 1 c# asp.net reflection exception
我想通过反射确定以下方法:
String.Concat(params string[] args);
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
MethodInfo concatMethod = typeof(string).GetMethod("Concat", new Type[] { typeof(string[]) });
Run Code Online (Sandbox Code Playgroud)
该方法被正确识别,但是当我尝试调用它时:
object concatResult = concatMethod.Invoke(null, new object[] { "A", "B" });
Run Code Online (Sandbox Code Playgroud)
我收到以下异常:
TargetParameterCountException: Parameter count mismatch.
Run Code Online (Sandbox Code Playgroud)
另请注意,我null将实例参数传递给Invoke方法,这是因为该方法是静态的,因此不需要实例。这种方法是否正确?
PS:我想模拟以下调用:
String.Concat("A", "B");
Run Code Online (Sandbox Code Playgroud)
输入数组的每个元素都是该方法的一个参数。Concat你的重载需要一个string[]参数,所以你需要:
object concatResult = concatMethod.Invoke(null, new object[] { new string[] { "A", "B" } });
Run Code Online (Sandbox Code Playgroud)