2010-03-13 100 views
5

一个PostSharp方面的OnEntry方法退出的方法,我想纵横退出基于类似以下的条件的方法调用:如何根据病情

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

任何帮助非常赞赏。

回答

9

好吧我自己想清楚了。这里为大家带来的利益解决方案:

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

没错。你也可以设置返回值(eventArgs.ReturnValue)。 – 2010-03-13 09:19:42

+0

嗨盖尔, 这是否意味着被调用的方法隐式立即返回,如果我设置返回值属性? – 2010-03-13 09:56:56