public object ParseReadValue(string readValue, Type destinationType, IniContext iniContext) { readValue = iniContext.IniParser.Read(iniContext.IniValue.Key, null); var splitReadValues = _readSectionsParser.Parse(readValue); var returnedDictionary = CreateDictionary(iniContext); foreach (var splitReadValue in splitReadValues) { var key = _underlyingKeyTypeIniConverter.ParseReadValue(splitReadValue.Key, iniContext.TypeDetailsInformation.UnderlyingKeyTypeInformation.Type, iniContext); var value = _underlyingTypeIniConverter.ParseReadValue(splitReadValue.Value, iniContext.TypeDetailsInformation.UnderlyingTypeInformation.Type, iniContext); returnedDictionary.Add(key, value); } return(returnedDictionary); }
public object ParseReadValue(string readValue, Type destinationType, IniContext iniContext) { if (string.IsNullOrEmpty(readValue)) { return(null); } var genericType = iniContext.TypeDetailsInformation.UnderlyingTypeInformation.Type; if (iniContext.TypeDetailsInformation.UnderlyingTypeInformation.TypeCode == TypeCode.Nullable) { genericType = typeof(Nullable <>).MakeGenericType(iniContext.TypeDetailsInformation.UnderlyingTypeInformation.Type); } var listType = typeof(List <>).MakeGenericType(genericType); var returnedList = (IList)Activator.CreateInstance(listType); foreach (var singleEntity in readValue.Split(new[] { _iniSettings.EnumerableEntitySeparator }, StringSplitOptions.RemoveEmptyEntries)) { returnedList.Add(_underlyingTypeIniConverter.ParseReadValue(singleEntity, iniContext.TypeDetailsInformation.UnderlyingTypeInformation.Type, iniContext)); } return(returnedList); }
public object ParseReadValue(string readValue, Type destinationType, IniContext iniContext) { var ignoreAttribute = _memberInfoWrapper.GetAttribute <IniIgnoreAttribute>(); return(ignoreAttribute == null?_iniConverter.ParseReadValue(readValue, destinationType, iniContext) : null); }