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

本文关键字:参数 调用 动态 方法 字符串 | 更新日期: 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)