Inheritance: IPropertyWeaver, IPropertyTypeBuilder
        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);
        }
        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;
        }