class Program { static void Main(string[] args) { Type doub = typeof(Doub); object result = doub.InvokeMember("Call", BindingFlags.InvokeMethod, null, null, new object[] { }); } } public class Doub { public Collection<string> Call() { Collection<string> collection = new Collection<string>(); return collection; } public Collection<T> Call<T>() { Collection<T> collection = new Collection<T>(); return collection; } }Traté de llamar al método Call, pero el programa no puede determinar a qué método llamar. Error: (System.Reflection.AmbiguousMatchException: "Coincidencia ambigua encontrada". ¿Cómo puede llamar exactamente al método Call() de la clase?
Debe usar una forma diferente para que el método se ejecute. Por ejemplo, el objeto Type tiene un método llamado GetMethod con varias sobrecargas, podrías usar la que te permite especificar cuántos parámetros genéricos tiene el método , por ejemplo:
Type doub = typeof(Doub); var callMethod = doub.GetMethod("Call", 0, new Type[] {}); // You need an instance of the object to call the method on var x = new Doub(); var result = callMethod.Invoke(x, new object[] {});