public override IAspectWeaver Reduce(IAspectWeavingSettings aspectWeavingSettings) { var clonedAspectWeavingSettings = aspectWeavingSettings.CloneWith(settings => { var localBuilderRepository = new LocalBuilderRepository(); var aspectArgumentImplType = aspectDefinition.ToAspectArgumentImpl(); settings.LocalBuilderRepository = localBuilderRepository; settings.ByRefArgumentsStoreWeaver = new TopAspectByRefArgumentsStoreWeaver(aspectArgumentImplType, aspectDefinition.Member, localBuilderRepository); }); var nestedWeaver = aspectExpression.Reduce(clonedAspectWeavingSettings); return new TopOnMethodBoundaryAspectWeaver(nestedWeaver, aspectDefinition, clonedAspectWeavingSettings); }
public override IAspectWeaver Reduce(IAspectWeavingSettings aspectWeavingSettings) { var clonedAspectWeavingSettings = aspectWeavingSettings.CloneWith(settings => { var localBuilderRepository = new LocalBuilderRepository(); var aspectArgumentImplType = aspectDefinition.ToAspectArgumentImpl(); settings.LocalBuilderRepository = localBuilderRepository; settings.ByRefArgumentsStoreWeaver = new TopAspectByRefArgumentsStoreWeaver(aspectArgumentImplType, aspectDefinition.Member, localBuilderRepository); }); var bindingWeaver = new IsolatedMethodInterceptionBindingWeaver(aspectExpression, aspectDefinition, clonedAspectWeavingSettings); return new TopMethodInterceptionAspectWeaver(aspectDefinition, clonedAspectWeavingSettings, bindingWeaver.WeavedType); }
public override IAspectWeaver Reduce(IAspectWeavingSettings aspectWeavingSettings) { var clonedAspectWeavingSettings = aspectWeavingSettings.CloneWith(settings => { var localBuilderRepository = new LocalBuilderRepository(); var aspectArgumentImplType = aspectDefinition.ToAspectArgumentImpl(); settings.LocalBuilderRepository = localBuilderRepository; settings.ByRefArgumentsStoreWeaver = new TopAspectByRefArgumentsStoreWeaver(aspectArgumentImplType, aspectDefinition.Member, localBuilderRepository); }); var bindingWeaver = new IsolatedMethodInterceptionBindingWeaver(aspectExpression, aspectDefinition, clonedAspectWeavingSettings); return(new TopMethodInterceptionAspectWeaver(aspectDefinition, clonedAspectWeavingSettings, bindingWeaver.WeavedType)); }
public override IAspectWeaver Reduce(IAspectWeavingSettings aspectWeavingSettings) { var clonedAspectWeavingSettings = aspectWeavingSettings.CloneWith(settings => { var localBuilderRepository = new LocalBuilderRepository(); var aspectArgumentImplType = aspectDefinition.ToAspectArgumentImpl(); settings.LocalBuilderRepository = localBuilderRepository; settings.ByRefArgumentsStoreWeaver = new TopAspectByRefArgumentsStoreWeaver(aspectArgumentImplType, aspectDefinition.Member, localBuilderRepository); }); var nestedWeaver = aspectExpression.Reduce(clonedAspectWeavingSettings); return(new TopOnMethodBoundaryAspectWeaver(nestedWeaver, aspectDefinition, clonedAspectWeavingSettings)); }