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)); }
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); }