private TagMapLeaf AddEnumerableLeaf(Stack <TagMapParent> parents, PropertyInfo property, FixTagAttribute fixTagAttribute, RepeatingGroupAttribute repeatingGroup, TypeConverterAttribute?typeConverter, int key, Type innerType) { BaseSetter setter; if (typeConverter != null) { setter = _propertySetterFactory.GetTypeConvertingSetter(property); } else { setter = _propertySetterFactory.GetSetter(property, innerType); } var value = TagMapLeaf.CreateEnumerable(property, repeatingGroup.Tag, innerType, setter); if (parents.Any()) { value.Parents = parents.ToList(); } if (typeConverter != null) { value.TypeConverterName = typeConverter.ConverterTypeName; } value.IsEncoded = fixTagAttribute.Encoded; _map.TryAdd(key, value); return(value); }
private void AddRepeatingGroupLeaf(Stack <TagMapParent> parents, PropertyInfo property, RepeatingGroupAttribute repeatingGroup, Type innerType, int key) { var value = TagMapLeaf.CreateRepeatingTag(property, innerType, _propertySetterFactory.GetRepeatingGroupTagSetter(property)); if (parents.Any()) { value.Parents = parents.ToList(); } value.IsEncoded = false; value.TypeConverterName = null; _map.TryAdd(key, value); }
private TagMapParent CreateRepeatingParentNode(PropertyInfo property, RepeatingGroupAttribute repeatingGroup, Type innerType) { return(TagMapParent.CreateEnumerable(property, repeatingGroup.Tag, innerType, _propertySetterFactory.GetParentSetter(property))); }