2 Stimmen

Wie werden die von der Methode MethodInfo.Invoke zurückgegebenen Werttypen in ihren richtigen Typ umgewandelt?

Ich würde gerne eine Methode aufrufen, die eine struct unter Verwendung der MethodInfo.Invoke Methode. Allerdings ist der Typ der zurückgegebenen Variablen bei dieser Metode object die nicht in eine struct .

(fand das, ebenso wie den Vorschlag, von struct a class , hier: http://msdn.microsoft.com/en-us/library/b7tch9h0(VS.90).aspx )

Wie könnte ich also das (Wert-)Ergebnis der aufgerufenen Methode in den richtigen Typ umwandeln?

(Ich habe versucht, einfache Cast als gut, aber es warf eine InvalidCastException)

Hier sind einige Teile meines Codes:

public class MyInvokedClass
{
    public struct MyStruct
    { ... };

    public MyStruct InvokedMethod()
    { 
        MyStruct structure;
        ... 
        return structure; 
    }
}

public class MyInvokingClass
{
    // Same structure here
    public struct MyStruct
    { ... };

    static void Main(string[] args)
    { 
        ...
        MethodInfo methodInfo = classType.GetMethod(methodName);
        MyStruct result = (MyStruct)methodInfo.Invoke(classInstance, null); 
        // the line above throws an InvalidCastException
    }
}

Ich danke Ihnen allen!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X