为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
守着星空守着你 2021-11-14 15:43:45
我正在寻找使用反射调用静态方法,该方法将项目和 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 时都会发生同样的错误。
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

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

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


查看完整回答
反对 回复 2021-11-14
  • 1 回答
  • 0 关注
  • 332 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信