c# reflection ambiguous-call

c# - Evitar una excepción de concordancia ambigua



reflection ambiguous-call (2)

Usa this sobrecarga y usa

returnType.GetMethod("Parse", new [] {typeof(string)})

Invoco un método estático Parse en un tipo mediante reflexión porque no sé el tipo de objeto en tiempo de compilación (lo sé, sin embargo, tiene un método Parse , tomando una cadena).

Sin embargo, recibo una excepción de coincidencia ambigua, presumiblemente porque hay muchos métodos Parse sobrecargados, cada uno de los cuales toma un solo objeto (cadena, int, doble, etc.).

¿Cómo puedo ser más específico en la invocación de mi método para asegurar que llegue al método correcto ( Parse (string s) ) y no se lanza la excepción?

Mi código se ve así:

Type returnType = p.PropertyType; object value = returnType.GetMethod("Parse").Invoke(null, new string[] { "1" });


if (assembly != null) { List<System.Reflection.MethodInfo> mInfo = new List<System.Reflection.MethodInfo>(); Type myType = null; foreach (Type item in assembly.GetTypes()) { mInfo.Clear(); mInfo = item.GetMethods().ToList(); foreach (System.Reflection.MethodInfo item2 in mInfo) { if (item2.Name == methodName) { Method = item2; break; } } } stateInstance = Activator.CreateInstance(myType); } return Method;