2010-03-13 7 views
5

basierend verlassen würde ich den Aspekt wie ein Methodenaufruf auf einem Zustand wie in der folgenden Basis zu verlassen:Wie ein Verfahren, bei dem OnEntry Verfahren eines Postsharp Aspekt der Bedingung

[AttributeUsage(AttributeTargets.Method)] 
    public class IgnoreIfInactiveAttribute : OnMethodBoundaryAspect 
    { 
     public override void OnEntry(MethodExecutionEventArgs eventArgs) 
     { 
      if (condition) 
      { 
       **// How can I make the method return here?** 
      } 
     } 
    } 

Jede Hilfe sehr geschätzt.

Antwort

9

Ok, ich habe es selbst herausgefunden. Hier die Lösung zum Wohl aller:

[AttributeUsage(AttributeTargets.Method)] 
    public class IgnoreIfInactiveAttribute : OnMethodBoundaryAspect 
    { 
     public override void OnEntry(MethodExecutionEventArgs eventArgs) 
     { 
      if (condition) 
      { 
       eventArgs.FlowBehavior = FlowBehavior.Return; 
      } 
     } 
    } 
+0

Genau. Sie können auch den Rückgabewert (eventArgs.ReturnValue) festlegen. –

+0

Hi Gael, Bedeutet das, dass die aufgerufene Methode implizit sofort zurückkehrt, wenn ich die Rückgabewerteigenschaft festlege? –

Verwandte Themen