调用参数为字符串的函数

时间:2018-11-05 07:19:09

标签: c# system.reflection

我需要调用一个带有参数作为字符串的函数。请看下面给出的示例:注意"method(parameter1,parameter2)"包含在""中。

string methodName = "method(3,4)"
string f = methodName ;

public string method(int one, int two){
    return "hi";
}

以上是预期结果。我将调用带有字符串方法名称及其后的参数的函数:

到目前为止,我已经尝试过:

  1. 我尝试使用反射,但未调用该方法。

  2. 如何解决此问题?

还有其他方法吗?

Type type = typeof(MyClass);
var method = type.GetMethod("method");
MyClass  cc = new MyClass();
string re= (string) method.Invoke(cc, new object[] {1,3});

1 个答案:

答案 0 :(得分:0)

这是一个如何使用反射调用方法的示例。

如果要作为字符串的一部分处理方法的输入,则必须在调用方法时解析字符串的该部分,并将值作为实例传递给对象数组。

class Program
{
    static void Main(string[] args)
    {
        var m = typeof(Program).GetMethod("PrintValue");
        var i  = new Program();
        m.Invoke(i, BindingFlags.Default, null, new object[] {42}, CultureInfo.CurrentCulture);
    }

    public void PrintValue(int i)
    {
        Console.WriteLine(i);
    }
}