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

詹姆斯·莫里森

我正在寻找使用反射调用静态方法,该方法将 Project 和 3 个字符串作为参数,但找不到实现此目的的方法。以下面为例

internal class PropertyActionProcessor
{
    public static async Task<Solution> ModifyNameInDto(Project project, string parentName, string oldValue, string newValue)
    {
        return new AdhocWorkspace().CurrentSolution;
    }
}

如果该方法只使用 3 个字符串,我可以使用下面的行成功调用“ModifyNameInDto”。

solution = await (Task<Solution>)typeof(PropertyActionProcessor).GetMethod($"Modify{propertyName}InDto").Invoke(null, new[] { parentName, itemName, newValue });

但是,我也需要将它传递给一个项目,但出现错误“找不到隐式类型数组的最佳类型”。没有可以提供帮助的超载,我无法在网上找到解决方案,这可能吗,如果可以,我该怎么做?

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

史蒂夫16351

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java反射API:调用不带参数的方法

如何验证具有不同参数的多个方法调用

当参数为Object []类型时,通过反射调用方法

如何在java反射中调用不带参数的方法

phpunit模拟方法使用不同参数多次调用

python中不同参数类型的方法重载

如果存在带有不同参数的继承成员,为什么对C ++结构函数的调用不明确?

具有不同参数的方法覆盖

如何根据模板类型参数调用不同的函数?

从C ++ 17中的另一个构造函数调用具有不同参数类型的构造函数

C-使用宏使用不同结构类型参数重载方法

不同参数的调用函数

调用具有嵌入JavaScript的不同参数的ruby方法

具有不同参数的调用方法

C#委托-如何首先将具有不同参数的多个功能的委托绑定(相同类型),然后再触发/调用它们?

使用不同参数值多次运行python脚本的最佳方法

Scala:具有不同参数类型的反射

具有不同参数的 Java 方法调用

使用不同参数管理@RequestParam 的代码逻辑

C#覆盖具有不同参数的方法

如何对具有不同参数类型的同一方法的 2 个连续调用进行单元测试

Typescript 中具有不同参数类型的类似方法

使用不同参数调用它时的有状态小部件更新,而不是更新?

使用不同参数的猫鼬查询

使用不同参数时生成重复数据

C# 多次调用不同类型的泛型方法

检测使用不同参数调用方法的好方法是什么?

JUnit - 如何使用不同参数测试相同方法中的重复指令?

找到一种在 C 中调用具有不同参数的函数的方法