Ich arbeite derzeit auf Reflexion mit C# und ich habe eine Frage. Ich versuche, verschiedene Klassen aufzurufen, die abstrakt oder interaktiv sein können. Also rufe ich einfach nicht die Methoden von denen auf, weil ich (offensichtlich) keine Instanz erstellen kann. Aber damit bin ich nicht zufrieden.Invoke Methoden der abstrakten Typen
Meine Frage ist: ist es möglich, irgendwie, dies zu umgehen und eine Instanz von etwas zu schaffen, wo ich die Methoden der gegebenen abstrakten Klasse Typ aufrufen kann? Sorta wie eine Klasse zu erstellen, die von einer Vorlage erbt, die dann der abstrakte Typ sein kann?
foreach (MethodInfo m in _classType.GetMethods(bindingFlags))
{
if (_classType.IsAbstract || _classType.IsInterface)
{
// only invoke instanciable types
MessageBox.Show("Abstract class and Interface cannot be invoked!");
}
else
{
var ms = CreateStringFromMethodForCheckedBox(m);
if (s == ms)
{
m.Invoke(Activator.CreateInstance(_classType), null);
}
}
}
Und was erwarten Sie von einer abstrakten Methode, wo sie ohne Definition nicht weiß, was zu tun ist? – praty
Sie erwähnen auch Schnittstellen, was würden Sie erwarten, wenn Sie versuchen würden, eine "Methode" auf einer Schnittstelle aufzurufen? Diese Frage ergibt ohne weitere Informationen keinen Sinn. – DavidG