public IMethodWeaver Build()
        {
            var weavingSettings = new WeavingSettingsImpl(contractType, typeDefinition);

            if (compositeMethodMap.HasAspectDefinitions)
            {
                var aspectWeavingSettings = new AspectWeavingSettingsImpl {
                    WeavingSettings  = weavingSettings,
                    AspectRepository = aspectWeavingServices.AspectRepository,
                    AspectArgsMapper = aspectWeavingServices.AspectArgsMapper
                };

                return(new CompositeMethodWeaver(compositeMethodMap.Target, compositeMethodMap.AspectDefinitions, aspectWeavingSettings));
            }

            return(new MethodDecoratorWeaver(compositeMethodMap.ContractMember, weavingSettings));
        }
        public override IMethodWeaver Build()
        {
            var weavingSettings = new WeavingSettingsImpl(contractType, typeDefinition);

            if (compositePropertyMap.HasAspectDefinitions)
            {
                var aspectWeavingSettings = new AspectWeavingSettingsImpl {
                    WeavingSettings  = weavingSettings,
                    AspectRepository = aspectWeavingServices.AspectRepository,
                    AspectArgsMapper = aspectWeavingServices.AspectArgsMapper
                };

                return(new CompositeSetPropertyWeaver(propertyTypeBuilder, compositePropertyMap.ContractMember, compositePropertyMap.AspectDefinitions, aspectWeavingSettings));
            }

            return(new SetPropertyDecoratorWeaver(compositePropertyMap.ContractMember.GetSetMethod(), weavingSettings));
        }
示例#3
0
        public override IMethodWeaver Build()
        {
            var weavingSettings = new WeavingSettingsImpl(contractType, typeDefinition);
            var removeMethod    = compositeEventMap.ContractMember.RemoveMethod;

            if (compositeEventMap.HasAspectDefinitions)
            {
                var aspectWeavingSettings = new AspectWeavingSettingsImpl {
                    WeavingSettings  = weavingSettings,
                    AspectRepository = aspectWeavingServices.AspectRepository,
                    AspectArgsMapper = aspectWeavingServices.AspectArgsMapper
                };

                return(new CompositeRemoveEventWeaver(eventTypeBuilder, removeMethod, compositeEventMap.AspectDefinitions, aspectWeavingSettings));
            }

            return(new RemoveEventDecoratorWeaver(eventTypeBuilder, compositeEventMap.ContractMember, weavingSettings));
        }
        public override IMethodWeaver Build()
        {
            var invokeMethod    = compositeEventMap.ContractMember.GetInvokeMethod();
            var weavingSettings = new WeavingSettingsImpl(contractType, typeDefinition);

            if (compositeEventMap.HasAspectDefinitions)
            {
                var aspectWeavingSettings = new AspectWeavingSettingsImpl {
                    WeavingSettings  = weavingSettings,
                    AspectRepository = aspectWeavingServices.AspectRepository,
                    AspectArgsMapper = aspectWeavingServices.AspectArgsMapper
                };

                return(new CompositeRaiseEventWeaver(eventTypeBuilder, compositeEventMap.ContractMember, invokeMethod, compositeEventMap.AspectDefinitions, aspectWeavingSettings));
            }

            return(null);
        }