public override bool IsApplied(BuildContext context, AbstractTypeBuilderList builders) { if (_interceptorType == null && _interceptType == 0) { return(false); } foreach (IAbstractTypeBuilder builder in builders) { InterceptorAspectBuilder interceptor = builder as InterceptorAspectBuilder; if (interceptor != null) { if (interceptor._interceptorType == null && interceptor._interceptType == 0) { return(false); } if (builder == this) { break; } } } if (context.IsMethodOrProperty) { switch (context.Step) { case BuildStep.Begin: return(true); case BuildStep.Before: return((_interceptType & InterceptType.BeforeCall) != 0); case BuildStep.After: return((_interceptType & InterceptType.AfterCall) != 0); case BuildStep.Catch: return((_interceptType & InterceptType.OnCatch) != 0); case BuildStep.Finally: return((_interceptType & InterceptType.OnFinally) != 0); case BuildStep.End: return(true); } } return(false); }
public override bool IsCompatible(BuildContext context, IAbstractTypeBuilder typeBuilder) { InterceptorAspectBuilder builder = typeBuilder as InterceptorAspectBuilder; return(builder == null || _interceptorType != builder._interceptorType); }