我已经做过一些研究,但很惊讶我没有找到解决这个简单问题的方法。
编辑:问题是,是否可能,或者C#无法提供任何方法来执行我要尝试的操作
在下面的示例中,我想使用IWannaBeCalled
数组中的参数从Linker
调用parameters
。基本上相当于调用
IWannaBeCalled(parameters[0], parameters[1]);
但是参数的数量不能固定:我想完全不更改Linker
方法就能添加或删除参数
这是示例代码:
class Program
{
private void IWannaBeCalled(string arg1, string arg2)
{
// Do stuffs using arg1 and arg2
}
private void Linker(params string[] parameters)
{
// ??
}
static void Main()
{
Linker("Hello", "world");
}
}
任何帮助将不胜感激〜
编辑:添加需要执行此操作的真实代码:
private PlanningDatas GetPlanningDatas(string dataSourceFunction, params string[] parameters)
{
if (!String.IsNullOrEmpty(dataSourceFunction))
{
string methodName = dataSourceFunction.Split('.').Last();
string classString = dataSourceFunction.Substring(0, dataSourceFunction.Length - methodName.Length - 1);
Type targetType = Type.GetType(classString);
MethodInfo targetMethod = targetType.GetMethod(methodName);
return (PlanningDatas)targetMethod.Invoke(null, parameters);
}
else
{
//return (PlanningDatas)DefaultDataSource( --parameters-- );
}
}
private PlanningDatas DefaultDataSource(string vehiculeModel)
{
// Get the Data
}
说明: 此示例来自mvc项目,因此方法名称是通过 ajax调用指定的,因此它必须是字符串。 如果给出了字符串,它将调用该方法,但是dataSourceFunction为null,它将调用默认函数。 所有未注释的代码都是完全正常的