Mittels des Attributes soll in einer Datenbank überprüft werden ob der aktuell angemeldete Benutzer die Role Administrator hat. Wenn ja dann soll die Methode normal aufgerufen werden, wenn nein dann soll der Methodenaufruf einfach übersprungen werden.
Ich habe schon viel gesucht und bin dabei auf so Stichwörter wie AOP (Aspect-oriented programming) gestossen. Im Projekt gibt es die Möglichkeit Unity 2.0 einzusetzen. Auch hier habe ich schon geforscht und bin in Richtung Interceptors gegangen. Hatte aber bisher keinen Erfolg.
Hoffe es kann mir hier jemand weiterhelfen. Ein kleines Beispiel oder Codeausschnitte wären toll.
Interessanterweise hat stackoverflow ein Beispiel mit AOP und Postsharp zu genau deiner Frage.
btw: Der Unterschied zwischen dem ConditionalAttribute und deinem Anliegen ist, dass mittels ConditionalAttribute und der Compiler Direktive #define der Compiler angewiesen wird, bestimmte Teile zu compilieren oder nicht.
Zur Laufzeit fällt mir auch nur AOP ein. Der Aspekt (= die Implementierung hinter dem Attribut) wird im Fall von Postsharp ebenfalls zur Compilezeit in das Executable integriert. Es gibt auch andere Methoden, mehr zu AOP in Wikipedia.
Hört sich tatsächlich nach einem Fall für AOP (z.B. PostSharp) an. Das ConditionalAttribute hat damit allerdings nichts zu tun: Es ist ausschließlich innerhalb des C# Compilers implementiert.