C# Xaml:如何调用名称存储在字符串中的方法?

C# Xaml:如何调用名称存储在字符串中的方法?,c#,xaml,C#,Xaml,您需要将调用的结果转换为字符串——或者转换(如果它实际上是字符串),或者使用ToString(): 请注意,Invoke的两个参数是1)调用方法的对象,以及2)方法的参数。我看到您正在传递一个空数组作为参数数组——这是一种不向方法传递任何参数的奇怪方式(最好只传递null)。所以我怀疑这不是你想做的。您必须确保传递给Invoke的object[]与正在调用的方法的签名匹配。除了GetMethod调用中的combo\u值的双引号之外,我看不出您的代码中有任何问题。你的实际问题是什么?你确实意识到,

您需要将调用的结果转换为字符串——或者转换(如果它实际上是字符串),或者使用
ToString()


请注意,
Invoke
的两个参数是1)调用方法的对象,以及2)方法的参数。我看到您正在传递一个空数组作为参数数组——这是一种不向方法传递任何参数的奇怪方式(最好只传递
null
)。所以我怀疑这不是你想做的。您必须确保传递给
Invoke
object[]
与正在调用的方法的签名匹配。

除了
GetMethod
调用中的
combo\u值的双引号之外,我看不出您的代码中有任何问题。你的实际问题是什么?你确实意识到,如果有任何方法过载,那么重大的灾难就会接踵而至,或者要调用的方法具有不同的签名?请提供有关遇到错误的详细信息。我在vs2013中遇到以下错误:错误3“System.Type”不包含“GetMethod”的定义,并且找不到接受类型为“System.Type”的第一个参数的扩展方法“GetMethod”(是否缺少using指令或程序集引用?)我遇到以下错误:错误3“System.Type”不包含“GetMethod”的定义,并且找不到接受“System.Type”类型的第一个参数的扩展方法“GetMethod”(是否缺少using指令或程序集引用?)
string combo_value = cmbox.SelectionBoxItem.ToString();
object value = typeof(JsonObject).GetMethod("combo_value")
                                 .Invoke(jsonObject.rates,new Type[0]);
 Label_value.Text = value;
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();