C#反射,使用不同的参数类型调用方法

C#反射,使用不同的参数类型调用方法,c#,reflection,.net-core,system.reflection,C#,Reflection,.net Core,System.reflection,我希望调用一个带有反射的静态方法,该方法将一个项目和3个字符串作为参数,但找不到实现这一点的方法。以下面的例子为例 internal class PropertyActionProcessor { public static async Task<Solution> ModifyNameInDto(Project project, string parentName, string oldValue, string newValue) { return

我希望调用一个带有反射的静态方法,该方法将一个项目和3个字符串作为参数,但找不到实现这一点的方法。以下面的例子为例

internal class PropertyActionProcessor
{
    public static async Task<Solution> ModifyNameInDto(Project project, string parentName, string oldValue, string newValue)
    {
        return new AdhocWorkspace().CurrentSolution;
    }
}
内部类PropertyActionProcessor
{
公共静态异步任务ModifyNameIndo(项目项目、字符串parentName、字符串oldValue、字符串newValue)
{
返回新的AdhocWorkspace().CurrentSolution;
}
}
如果该方法只需要3个字符串,我就可以用下面的行成功调用“ModifyNameInDto”

solution = await (Task<Solution>)typeof(PropertyActionProcessor).GetMethod($"Modify{propertyName}InDto").Invoke(null, new[] { parentName, itemName, newValue });
solution=wait(Task)typeof(PropertyActionProcessor).GetMethod($“Modify{propertyName}InDto”).Invoke(null,new[]{parentName,itemName,newValue});
然而,我也需要给它传递一个项目,但是我得到了一个错误“没有为隐式类型数组找到最佳类型”。没有过载可以帮助我,我也无法在线找到解决方案,这可能吗?如果可能的话,我该怎么做

对于任何不熟悉项目对象的人,在尝试传递int时都会发生相同的错误。

您会收到错误“找不到隐式类型数组的最佳类型”,因为您传递的参数具有不同的类型。如果它们都是字符串,则隐式表示它是字符串数组。然而,在您的情况下,由于有多种不同的类型,您需要给它一个提示


例如,如果您提供
新对象[]{new Project(),parentName,itemName,newValue}
,这应该可以避免编译错误。

将对象数组而不是数组传递给它,就可以了,谢谢!