Mehrdeutige übereinstimmung gefunden beim Zugriff auf die dll

Ich versuche, laden Sie eine Funktion in einer dll. Die dll wird geladen, aber nur an der Stelle der Berufung auf die Funktion, bin ich immer eine Ausnahme

Mehrdeutige Treffer gefunden

Hier ist das code-snippet.

Assembly dll = Assembly.LoadFrom(DLLPATH);
if (dll != null)
{
    Type Tp = dll.GetType("ABCD.FooClass");
    if (Tp != null)
    {
        Object obj = Activator.CreateInstance(Tp);

        if (obj != null)
        {                            
            List = (List<String>)obj.GetType().GetMethod("Foo").Invoke(obj, null);
        }
        else
        {
            Console.WriteLine("obj is null");
        }
    }
    Console.WriteLine("Type is null");
}
else
    Console.WriteLine("Dll is not loaded");

Console.ReadKey();

Die Methode, die ich Vorschlage, (ich.e Foo), akzeptiert keine Parameter und es ist eine überladene Methode. Ist, dass der Ort, wohin ich gehe falsch gemacht oder ist es ein anderer Ort?

Gibt es eine andere Möglichkeit zum aufrufen solcher Methoden, die akzeptiert keine Parameter? Ich habe versucht, die Lösung gepostet hier aber es funktioniert nicht.

Beispiel-code ohne alle LoadLibrary/CreateInstance würde wahrscheinlich zeigen problem mehr klar bitte versuchen Sie, machen Sie einfach die Probe mit einer vereinfachten "FooClass" und Aufruf von Invoke. (vorausgesetzt, Sie bekommen Ausnahme gibt es).
Hast du das laden der assembly mehrere Male?
Ich bin laden der assembly für eine Zeit nur.

InformationsquelleAutor Pankaj Kolhe | 2013-03-06

Schreibe einen Kommentar