Witam. Staram się ogarnąć pakiety .NET, mechanizm refleksji, późne wiązanie itp. Stworzyłem sobie pakiet autoIosoba.dll, w pakiecie zawarte są 2 klasy, Auto oraz Osoba. Klasa Auto składa się z tego z czego zazwyczaj składają się klasy, 2 konstruktory, 2 zdarzenia, kilka pól prywatnych i publicznych metod. Dla mojego problemu istotne jest to że w klasie są zdefiniowane 2 wersje metody zwieksz, która ma zwiększyć wartość pola szybkość. Jedna wersja metody jest bez parametru, druga przyjmuje parametr typu int o wartość którego zostanie zwiększona wartość pola szybkość. W nowym projekcie robię coś takiego:
Assembly autoIosoba = Assembly.Load("autoIosoba");
Type auto = autoIosoba.GetType("autoIosoba.Auto");
ConstructorInfo ci = auto.GetConstructor(Type.EmptyTypes);
Object auto1 = ci.Invoke(new object[] { });
MethodInfo zwieksz = auto.GetMethod("zwieksz"); //błąd, znaleziono niejednoznaczne dopasowanie
object[] parameters = null; //chcę przykładowo wywołać metodę zwieksz bez parametrów
zwieksz.Invoke(auto1, parameters);
Zdaję sobie sprawę że błąd powodowany jest przez to że metoda zwieksz jest przeciążona i kompilator nie wie o którą mi chodzi, mimo to nie wiem jak ten problem rozwiązać. Kiedy próbuje wywołać inną metodę, np. wyswietl, wszystko jest w porządku. Co na to poradzić?