Asp.net Mvc: Listet alle Aktionen auf einem Controller mit einem bestimmten Attribut auf

8

Ich versuche, alle Controller und ihre Aktionen mit bestimmten Attributen aufzulisten, um eine dynamische Google-Sitemap zu erstellen. Damit ich bestimmte Aktionen mit einem Attribut "markieren" kann, erscheinen sie in der Sitemap.

Hier habe ich herausgefunden, wie es geht alle Controller. Aber ich bin mir nicht sicher, wie ich all ihre Aktionen mit einem bestimmten Attribut ausführen kann. Ich habe versucht GetMethods und dann GetCustomAttributes zu verwenden, aber ich bin mir nicht sicher, ob das der richtige Weg ist. Es fühlte sich ein wenig zu kompliziert an.

Sobald ich die Controller und ihre Aktionen bekommen habe, würde ich die hier erklärte Technik verwenden um die URLs zu erhalten. Wie Sie vielleicht bemerken, spricht Eric Duncan darüber, was ich in dieser Frage erreichen möchte.

Vielen Dank im Voraus.

    
Pickels 31.08.2009, 16:12
quelle

1 Antwort

17

Ich verwende Code in meinen Komponententests, um zu verifizieren, dass bestimmte Aktionen mit Attributen versehen sind. Es verwendet Reflektion mit einigen aufzählbaren Erweiterungsmethoden. Ich denke du könntest das anpassen. Beachten Sie, wenn Sie nur daran interessiert sind, ob es existiert oder nicht, könnten Sie Count () für die Enumeration verwenden, anstatt das tatsächliche Attribut zu erhalten. Auf diese Weise können Sie die Attributeigenschaften etwas flexibler anpassen, um das Verhalten anzupassen. Mithilfe der Vererbungsstruktur können Sie einen gesamten Controller dekorieren.

%Vor%     
tvanfosson 31.08.2009, 16:26
quelle

Tags und Links