string combo_value = cmbox.SelectionBoxItem.ToString();
object value = typeof(JsonObject).GetMethod("combo_value")
.Invoke(jsonObject.rates,new Type[0]);
Label_value.Text = value;
答案 0 :(得分:1)
您需要将调用的结果转换为字符串 - 要么转换(如果它实际上是字符串),要么使用ToString()
:
string methodName = cmbox.SelectionBoxItem.ToString();
object methodOwner = jsonObject.rates;
object[] methodParameters = new Type[0]; // this is the same as having no parameters
// invoke methodName on the instance jsonObject.rates, with no parameters
System.Diagnostics.Debug.WriteLine("Invoking the method named '{0}' on the object '{1}' with parameters '{2}'",
methodName, methodOwner, string.Join(", ", methodParameters);
object value = typeof(JsonObject).GetMethod(methodName).Invoke(methodOwner, methodParameters);
if (value != null)
Label_value.Text = value.ToString();
请注意Invoke
的两个参数是1)调用方法的对象,以及2)方法的参数。我看到你传递一个空数组作为参数数组 - 这是一种奇怪的方法,不将参数传递给方法(也可以传递null
)。所以我怀疑那不是你想要做的。您必须确保传递给object[]
的{{1}}与您要调用的方法的签名匹配。