Evitar una excepción de coincidencia ambigua


Estoy invocando un método estático Parse en un tipo a través de reflexión porque no conozco el tipo del objeto en tiempo de compilación (sé, sin embargo, que tiene un método Parse, tomando una cadena).

Sin embargo, estoy recibiendo una excepción de coincidencia ambigua, presumiblemente porque hay muchos métodos de análisis sobrecargados cada uno tomando un solo objeto (string, int, double, etc.).).

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

Mi código se ve así:

Type returnType = p.PropertyType;
object value = returnType.GetMethod("Parse").Invoke(null, new string[] { "1" });
Author: Rubens Farias, 2009-12-28

2 answers

Use esta sobrecarga y use

returnType.GetMethod("Parse", new [] {typeof(string)})
 154
Author: Benjamin Podszun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-28 13:16:22
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;
 -3
Author: Kamil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-18 16:57:48