2010-03-13 13 views
5

J'aimerais l'aspect de sortir d'un appel de méthode basée sur une condition comme ce qui suit:Comment sortir une méthode dans la méthode OnEntry d'un aspect PostSharp fondée sur la condition

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

Toute aide très appréciée.

Répondre

9

Ok, je l'ai compris moi-même. Voici la solution pour le bénéfice de tous:

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

Exactement. Vous pouvez également définir la valeur de retour (eventArgs.ReturnValue). –

+0

Hi Gael, Cela signifie-t-il que la méthode invoquée retourne immédiatement implicitement si je définis la propriété de valeur de retour? –