internal BindingAspectDecoratorWeaver(IAspectDefinition aspectDefinition, IAspectWeavingSettings aspectWeavingSettings, IArgumentsWeavingSettings argumentsWeavingSettings) : base(aspectWeavingSettings.WeavingSettings) { var bindingSettings = aspectDefinition.ToBindingSettings(); var methodInfoImpl = aspectWeavingSettings.WeavingSettings.MethodInfoImpl; lazyWeavedType = new Core.Lib.Lazy <FieldInfo>(WeaveType); bindingSettings.LocalBuilderRepository = aspectWeavingSettings.LocalBuilderRepository; methodDecoratorScopeWeaver = new MethodDecoratorScopeWeaver(aspectWeavingSettings); weaver = new MethodDecoratorBindingWeaver(bindingSettings, aspectWeavingSettings, this); }
protected virtual FieldInfo WeaveType() { IAspectWeaver aspectWeaver = null; IMethodBindingWeaver bindingWeaver = null; var aspectType = aspectDefinition.Aspect.AspectType; var aspectSetings = GetAspectsWeavingSettings(); aspectWeaver = aspectExpression.Reduce(aspectSetings); bindingSettings.LocalBuilderRepository = aspectSetings.LocalBuilderRepository; bindingWeaver = new OnMethodInterceptionBindingWeaver(aspectType, bindingSettings, aspectWeavingSettings, aspectWeaver); return(bindingWeaver.Weave()); }