当Im通过system.reflection解析方法时,im得到一个错误:
System.Reflection.AmbiguousMatchException
typeof(Graphics).GetMethod("DrawRectangle").Invoke(g, new object[] {
Pens.Red, new Rectangle(200, 200, 100, 50)
});但是,当im通过编译器解析它时,它工作得很好。
g.DrawRectangle(Pens.Red, new Rectangle(200,200,100,50));是否有一种方法可以指定我要调用的方法?
发布于 2020-06-24 12:14:44
Graphics.DrawRectangle有3种不同的重载,因此不可能通过GetMethod仅按名称找到具体的重载,您可以在GetMethod调用中为所需的重载指定参数类型:
typeof(Graphics).GetMethod("DrawRectangle", new[] {typeof(Pen), typeof(Rectangle)})发布于 2020-06-24 12:18:17
对于DrawRectangle,有不同的重载。
试试这样的东西。
var args = new object[] { Pens.Red, new Rectangle(200, 200, 100, 50) };
var r =
typeof(Graphics).GetMethod("DrawRectangle",System.Type.GetTypeArray(args));
r.Invoke(g, args);https://stackoverflow.com/questions/62554693
复制相似问题