不明确的条目 System.Reflection
Ambiguous Entry System.Reflection
我在通过 system.reflection:
解析方法时遇到错误
System.Reflection.AmbiguousMatchException
typeof(Graphics).GetMethod("DrawRectangle").Invoke(g, new object[] {
Pens.Red, new Rectangle(200, 200, 100, 50)
});
但是当我通过编译器解析它时效果很好
g.DrawRectangle(Pens.Red, new Rectangle(200,200,100,50));
有没有办法指定我想调用哪个方法?
Graphics.DrawRectangle 有 3 种不同的重载,因此无法通过 GetMethod
仅通过名称找到具体的重载,您可以在 GetMethod
调用中指定所需重载的参数类型:
typeof(Graphics).GetMethod("DrawRectangle", new[] {typeof(Pen), typeof(Rectangle)})
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);
我在通过 system.reflection:
解析方法时遇到错误System.Reflection.AmbiguousMatchException
typeof(Graphics).GetMethod("DrawRectangle").Invoke(g, new object[] {
Pens.Red, new Rectangle(200, 200, 100, 50)
});
但是当我通过编译器解析它时效果很好
g.DrawRectangle(Pens.Red, new Rectangle(200,200,100,50));
有没有办法指定我想调用哪个方法?
Graphics.DrawRectangle 有 3 种不同的重载,因此无法通过 GetMethod
仅通过名称找到具体的重载,您可以在 GetMethod
调用中指定所需重载的参数类型:
typeof(Graphics).GetMethod("DrawRectangle", new[] {typeof(Pen), typeof(Rectangle)})
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);