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);
        }
예제 #2
0
 internal AbstractAspectWeaver(IAspectDefinition aspectDefinition, IAspectWeavingSettings aspectWeavingSettings)
 {
     advices = aspectDefinition.Advices;
     this.aspectDefinition = aspectDefinition;
     this.aspectWeavingSettings = aspectWeavingSettings;
     bindingSettings = aspectDefinition.ToBindingSettings();
     weavingSettings = aspectWeavingSettings.WeavingSettings;
     aspectRepository = aspectWeavingSettings.AspectRepository;
     argumentsWeavingSettings = aspectDefinition.ToArgumentsWeavingSettings();
     aspectDefinition.Advices.ForEach(advice => advice.Accept(adviceDiscoveryVistor));
 }
예제 #3
0
 internal AbstractAspectWeaver(IAspectDefinition aspectDefinition, IAspectWeavingSettings aspectWeavingSettings)
 {
     advices = aspectDefinition.Advices;
     this.aspectDefinition      = aspectDefinition;
     this.aspectWeavingSettings = aspectWeavingSettings;
     bindingSettings            = aspectDefinition.ToBindingSettings();
     weavingSettings            = aspectWeavingSettings.WeavingSettings;
     aspectRepository           = aspectWeavingSettings.AspectRepository;
     argumentsWeavingSettings   = aspectDefinition.ToArgumentsWeavingSettings();
     aspectDefinition.Advices.ForEach(advice => advice.Accept(adviceDiscoveryVistor));
 }
예제 #4
0
 internal static ArgumentsWeavingSettings ToArgumentsWeavingSettings(this IAspectDefinition aspectDefinition)
 {
     return(aspectDefinition.ToBindingSettings()
            .ToArgumentsWeavingSettings(aspectDefinition.Aspect.AspectType));
 }
예제 #5
0
 internal AbstractBindingAspectWeaver(IAspectDefinition aspectDefinition)
 {
     this.aspectDefinition = aspectDefinition;
     bindingSettings       = aspectDefinition.ToBindingSettings();
 }
예제 #6
0
 internal BindingAspectDecoratorExpression(IAspectDefinition aspectDefinition, IArgumentsWeavingSettings argumentsWeavingSettings)
 {
     this.aspectDefinition         = aspectDefinition;
     bindingSettings               = aspectDefinition.ToBindingSettings();
     this.argumentsWeavingSettings = argumentsWeavingSettings;
 }