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 CompositeGetPropertyWeaver(propertyTypeBuilder, compositePropertyMap.ContractMember, compositePropertyMap.AspectDefinitions, aspectWeavingSettings); } return new GetPropertyDecoratorWeaver(compositePropertyMap.ContractMember.GetGetMethod(), weavingSettings); }
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 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; }
public override IMethodWeaver Build() { var weavingSettings = new WeavingSettingsImpl(contractType, typeDefinition); var addMethod = compositeEventMap.ContractMember.AddMethod; if (compositeEventMap.HasAspectDefinitions) { var aspectWeavingSettings = new AspectWeavingSettingsImpl { WeavingSettings = weavingSettings, AspectRepository = aspectWeavingServices.AspectRepository, AspectArgsMapper = aspectWeavingServices.AspectArgsMapper }; return new CompositeAddEventWeaver(eventTypeBuilder, addMethod, compositeEventMap.AspectDefinitions, aspectWeavingSettings); } return new AddEventDecoratorWeaver(eventTypeBuilder, compositeEventMap.ContractMember, weavingSettings); }