我想调用一个基于字符串的方法。使用MethodInfo.Invoke()可以正常工作。
如果有办法根据相同的字符串为调用添加参数,我想知道的是什么,例如:而不是致电foo()
我想致电foo(1, true, "bar")
。
我想我必须提取参数,将它们转换为正确的基本类型,并使用methodInfo.Invoke(classInstance, params)
调用该方法。
感觉就像一个长镜头,但是有一种“好”的解决方法吗?
答案 0 :(得分:0)
我们谈论的是什么程度的差异?所有参数都需要是完全动态的,即不同类型,不同数量,不同顺序。或者是否有一组已知顺序和类型的可选参数?
如果是动态的,那么对象字典/数组可能是唯一的解决方案。否则,可以使用默认值声明已知参数,使其成为可选参数:
public void SomeMethod(int one = 0, string two = "default", bool three = true)