So finden Sie alle Controller und Aktionen

8

Wie findet man alle Controller und Aktionen mit seinem Attribut im dotnet core? In .NET Framework habe ich diesen Code verwendet:

%Vor%

aber es funktioniert nicht in Dotnet-Core.

    
Raika 09.06.2017, 10:25
quelle

1 Antwort

7

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.

    
juunas 09.06.2017, 12:03
quelle