Wie wäre es, IActionDescriptorCollectionProvider
in Ihre Komponente zu injizieren, die diese Dinge wissen muss? Es befindet sich im Namensraum Microsoft.AspNetCore.Mvc.Infrastructure
.
Diese Komponente bietet Ihnen jede einzelne in der App verfügbare Aktion. Hier ist ein Beispiel für die Daten, die es zur Verfügung stellt:
Als Bonus können Sie auch alle Filter, Parameter usw. auswerten.
Als Nebenbemerkung könnten Sie die Reflektion verwenden, um die Typen zu finden, die von ControllerBase
erben. Aber wussten Sie, dass Sie Controller haben können, die nicht davon erben? Und dass Sie Konventionen schreiben können, die diese Regeln außer Kraft setzen? Aus diesem Grund macht es das Einspritzen der obigen Komponente viel einfacher. Du musst dir keine Sorgen machen, dass es kaputt geht.
Tags und Links c# asp.net-core asp.net-core-mvc