C# - GetMethod gibt null zurück
Habe ich A
Klasse:
public abstract class A
{
}
Und dann habe ich B
Klasse, leitet daraus:
public sealed class B : A
{
public void SomeMethod()
{
var method = this.GetType().GetMethod("AddText");
}
private void AddText(string text)
{
...
}
}
Warum ist GetMethod
null zurückgeben?
- Beachten Sie, dass wenn Sie nur mit der Maus über
GetMethod(...)
in Visual Studio, ist es klarSearches for the **public** method with the specified name.
Es ist mir klar, von nur die Nachricht, dass eine weitere überlast erforderlich ist. - aber warum nicht einfach anrufen
AddText
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Methode hat einen parameter, den Sie verwenden müssen, um die überlastung, übernimmt eine Art array für die parameter-Typen und die binding-flags.
In .Netto-Methode-Signaturen basieren auf Ihren Namen, Ihren Rückgabetyp und Parameter.
Also, wenn Sie Ihre Methode hat Parameter, die Sie haben, zu sagen, die Reflexion, welche parameter-Typen es verfügt über eine Art[].
Standardmäßig Reflexion wird nur die Suche nach öffentlichen Methoden.
Müssen Sie gehen
BindingFlags.Instance | BindingFlags.NonPublic
.