我正在寻找使用反射调用静态方法,该方法将项目和 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 }
,这应该避免编译错误。
- 1 回答
- 0 关注
- 332 浏览
添加回答
举报
0/150
提交
取消