NCop.Composite.Weaving.CompositeSetPropertyWeaverBuilder.Build C# (CSharp) Method

Build() public method

public Build ( ) : IMethodWeaver
return IMethodWeaver
        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);
        }

Usage Example

        public IPropertyWeaver Build()
        {
            var getPropertyMap = compositePropertyMap.GetPropertyFragmentMap;
            var setPropertyMap = compositePropertyMap.SetPropertyFragmentMap;
            var propertyMaps   = new[] { getPropertyMap, setPropertyMap };
            var property       = propertyMaps.SetIfNotNull(item => item.ContractMember);
            var propertyWeaver = new CompositePropertyWeaver(typeDefinition, property);

            if (getPropertyMap.IsNotNull())
            {
                var getPropertyWeaverBuilder = new CompositeGetPropertyWeaverBuilder(propertyWeaver, getPropertyMap, typeDefinition, aspectWeavingServices);
                var getPropertyWeaver        = getPropertyWeaverBuilder.Build();

                propertyWeaver.SetGetMethodWeaver(getPropertyWeaver);
            }

            if (setPropertyMap.IsNotNull())
            {
                var setPropertyWeaverBuilder = new CompositeSetPropertyWeaverBuilder(propertyWeaver, setPropertyMap, typeDefinition, aspectWeavingServices);
                var setPropertyWeaver        = setPropertyWeaverBuilder.Build();

                propertyWeaver.SetSetMethodWeaver(setPropertyWeaver);
            }

            return(propertyWeaver);
        }
All Usage Examples Of NCop.Composite.Weaving.CompositeSetPropertyWeaverBuilder::Build
CompositeSetPropertyWeaverBuilder