private PropertyExtractor GetAttributeExtractCombo(Type type, PropertyInfo property) { PropertyExtractor propertyExtractor = null; var comboExtract = AttributeUtil.GetAttribute <ComboExtractAttribute>(property); if (comboExtract != null) { var extractBys = comboExtract.Value; var selectors = ExtractorUtils.GetSelectors(extractBys); ISelector selector = new AndSelector(selectors); switch (comboExtract.Op) { case Op.And: selector = new AndSelector(selectors); break; case Op.Or: selector = new OrSelector(selectors); break; } var source = comboExtract.Source == ExtractSource.RawHtml ? Source.RawHtml : Source.Html; propertyExtractor = new PropertyExtractor(property, selector, source, comboExtract.NotNull, comboExtract.IsMulti || typeof(List <object>).IsAssignableFrom(property.GetType())); } return(propertyExtractor); }
private FieldExtractor GetAttributeExtractCombo(Type type, FieldInfo field) { FieldExtractor fieldExtractor = null; var comboExtract = AttributeUtil.GetAttribute <ComboExtractAttribute>(field); if (comboExtract != null) { var extractBys = comboExtract.Value; var selectors = ExtractorUtils.GetSelectors(extractBys); ISelector selector = new AndSelector(selectors); switch (comboExtract.Op) { case Op.And: selector = new AndSelector(selectors); break; case Op.Or: selector = new OrSelector(selectors); break; } var source = comboExtract.Source == ExtractSource.RawHtml ? Source.RawHtml : Source.Html; fieldExtractor = new FieldExtractor(field, selector, source, comboExtract.NotNull, comboExtract.IsMulti || typeof(List <object>).IsAssignableFrom(field.GetType())) { SetterMethod = GetSetterMethod(type, field) ?? null }; } return(fieldExtractor); }
private FieldExtractor GetAnnotationExtractCombo(PropertyInfo field) { FieldExtractor fieldExtractor = null; ComboExtract comboExtract = field.GetCustomAttribute <ComboExtract>(); if (comboExtract != null) { ExtractBy[] extractBies = comboExtract.Value; ISelector selector; switch (comboExtract.Op) { case ComboExtract.ExtractOp.And: selector = new AndSelector(ExtractorUtils.GetSelectors(extractBies)); break; case ComboExtract.ExtractOp.Or: selector = new OrSelector(ExtractorUtils.GetSelectors(extractBies)); break; default: selector = new AndSelector(ExtractorUtils.GetSelectors(extractBies)); break; } fieldExtractor = new FieldExtractor(field, selector, comboExtract.Source, comboExtract.NotNull, comboExtract.Multi || field.PropertyType.IsGenericType, null); } return(fieldExtractor); }