[英]Call a Method which has params using Reflection
我正在嘗試調用具有使用反射的 Params 的方法。 它返回 System.Reflection.TargetParameterCountException
這僅發生在方法參數中具有 params 關鍵字的方法上
Public static dynamic Function(JObject data, string PathFunction) {
string MethodName = "MergeFields";
string FunctionsNamespace ="Test.Functions";
Object[] parameterArray = {"274-84-3068","5","1","Hugenberg","4","0"}
// Call Static class functions
Type type = Type.GetType(FunctionsNamespace);
Object obj = Activator.CreateInstance(type);
MethodInfo methodInfo = type.GetMethod(MethodName);
object st = methodInfo.Invoke(obj, parameterArray);
return st;
}
public static string MergeFields(params string[] data)
{
StringBuilder sb = new StringBuilder();
// code to be processed
return sb.ToString();
}
如果你有一個方法:
public static string MergeFields(params string[] data)
你打電話給:
MergeFields("a", "b", "c");
編譯器偷偷把它變成:
MergeFields(new string[] { "a", "b", "c" });
但是,當您使用反射時,您不會在此處獲得編譯器的幫助:您需要自己創建該字符串數組:
object[] parameterArray = new object[] { new string[] { "274-84-3068", "5", "1", "Hugenberg", "4", "0" } };
在這里,我們將向MergeFields
傳遞一個參數,該參數是一個字符串數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.