使用基于字符串的参数调用动态方法
本文关键字:参数 调用 动态 方法 字符串 | 更新日期: 2023-09-27 18:21:30
我想调用一个基于字符串的方法。使用MethodInfo.IInvoke().可以很好地工作
我想知道的是,是否有一种方法可以基于相同的字符串向调用添加参数,例如,我不想调用foo()
,而是想调用foo(1, true, "bar")
。
我想我必须提取参数,将它们转换为正确的基元类型,并使用methodInfo.Invoke(classInstance, params)
调用该方法。
这感觉是一个很长的机会,但有一个"好"的方法来解决这个问题吗?
我们谈论的方差水平是多少?是否所有参数都需要完全动态,即不同类型、不同数量、不同顺序。或者是否有一组已知顺序和类型的可选参数?
如果是动态的,那么对象字典/数组可能是唯一的解决方案。否则,可以用默认值声明已知参数,使其成为可选参数:
public void SomeMethod(int one = 0, string two = "default", bool three = true)