2016-04-15 7 views
3

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?

Antwort

0

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.

siehe MethodBase.Invoke Example

Type.InvokeMember Example siehe

0

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.

Verwandte Themen