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 TagMapLeaf AddLeafNode(Stack <TagMapParent> parents, PropertyInfo property, FixTagAttribute fixTagAttribute, TypeConverterAttribute?typeConverter, int key) { BaseSetter setter; if (typeConverter != null) { setter = _propertySetterFactory.GetTypeConvertingSetter(property); } else { setter = _propertySetterFactory.GetSetter(property, property.PropertyType); } TagMapLeaf value = new TagMapLeaf(property, setter) { IsEncoded = fixTagAttribute.Encoded }; if (parents.Any()) { value.Parents = parents.ToList(); } if (typeConverter != null) { value.TypeConverterName = typeConverter.ConverterTypeName; } _map.TryAdd(key, value); return(value); }