使用基于字符串的参数调用动态方法

时间:2014-09-10 08:29:41

标签: c# asp.net

我想调用一个基于字符串的方法。使用MethodInfo.Invoke()可以正常工作。

如果有办法根据相同的字符串为调用添加参数,我想知道的是什么,例如:而不是致电foo()我想致电foo(1, true, "bar")

我想我必须提取参数,将它们转换为正确的基本类型,并使用methodInfo.Invoke(classInstance, params)调用该方法。

感觉就像一个长镜头,但是有一种“好”的解决方法吗?

1 个答案:

答案 0 :(得分:0)

我们谈论的是什么程度的差异?所有参数都需要是完全动态的,即不同类型,不同数量,不同顺序。或者是否有一组已知顺序和类型的可选参数?

如果是动态的,那么对象字典/数组可能是唯一的解决方案。否则,可以使用默认值声明已知参数,使其成为可选参数:

public void SomeMethod(int one = 0, string two = "default", bool three = true)