Was ist der Unterschied zwischen den Methoden MethodInfo.Invoke()
und Type.InvokeMember()
?MethodInfo.Invoke vs Type.InvokeMember?
Welche sollten in welchen Szenarien verwendet werden?
Welches ist der bevorzugte Weg, um eine Methode aufzurufen?
Was ist der Unterschied zwischen den Methoden MethodInfo.Invoke()
und Type.InvokeMember()
?MethodInfo.Invoke vs Type.InvokeMember?
Welche sollten in welchen Szenarien verwendet werden?
Welches ist der bevorzugte Weg, um eine Methode aufzurufen?
Ich denke, beide sollten identisch sein, solange das Aufrufen einer Methode oder eines Konstruktors konzertiert ist, aber InvokeMember muss verwendet werden, wenn Sie ein Feld/eine Eigenschaft abrufen/setzen möchten.
Überprüfen Sie die Links hier für weitere Details.
Je nachdem, wie Sie es verwenden, könnte MethodInfo.Invoke
schneller sein. Wenn Sie Type.InvokeMember
unter den Abdeckungen aufrufen, wird eine MethodInfo
abgerufen und dann aufgerufen. Das Abrufen eines MethodInfo
ist teuer. Wenn Sie dieselbe Methode mehrere Male aufrufen, speichern Sie die Variable MethodInfo
in einer Variablen und rufen sie aus der Variablen mit Zeitspeichern auf.