public static object ConvertFromString(string item, PropertyDefinition definition) { ProviderPropertyDefinition providerPropertyDefinition = (ProviderPropertyDefinition)definition; if (providerPropertyDefinition.IsMultivalued && !string.IsNullOrEmpty(item)) { List <object> list = new List <object>(); int num = 0; do { int num2 = item.IndexOf("|", num); int num3 = int.Parse(item.Substring(num, num2 - num)); num2++; string item2 = item.Substring(num2, num3); num = num2 + num3; list.Add(SearchHelper.ConvertFromString(item2, definition.Type)); }while (num < item.Length); return(ValueConvertor.CreateGenericMultiValuedProperty(providerPropertyDefinition, false, list, null, null)); } return(SearchHelper.ConvertFromString(item, definition.Type)); }