/// <summary> /// Converts the given value object to the specified type, using the specified context and culture information. /// </summary> /// <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext" /> that provides a format context.</param> /// <param name="culture">A <see cref="T:System.Globalization.CultureInfo" />. If null is passed, the current culture is assumed.</param> /// <param name="value">The <see cref="T:System.Object" /> to convert.</param> /// <param name="destinationType">The <see cref="T:System.Type" /> to convert the <paramref name="value" /> parameter to.</param> /// <returns> /// An <see cref="T:System.Object" /> that represents the converted value. /// </returns> /// <exception cref="T:System.ArgumentNullException"> /// The <paramref name="destinationType" /> parameter is null. /// </exception> /// <exception cref="T:System.NotSupportedException"> /// The conversion cannot be performed. /// </exception> public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { DelimitedStringCollection strings = value as DelimitedStringCollection; if (!(destinationType != typeof(string)) && (strings != null)) { return(strings.ToString()); } return(base.ConvertTo(context, culture, value, destinationType)); }
/// <summary> /// Converts the given object to the type of this converter, using the specified context and culture information. /// </summary> /// <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext" /> that provides a format context.</param> /// <param name="culture">The <see cref="T:System.Globalization.CultureInfo" /> to use as the current culture.</param> /// <param name="value">The <see cref="T:System.Object" /> to convert.</param> /// <returns> /// An <see cref="T:System.Object" /> that represents the converted value. /// </returns> /// <exception cref="T:System.NotSupportedException"> /// The conversion cannot be performed. /// </exception> public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { DelimitedStringCollection strings; if (!(value is string)) { return(base.ConvertFrom(context, culture, value)); } if (context.PropertyDescriptor.IsReadOnly) { strings = context.PropertyDescriptor.GetValue(context.Instance) as DelimitedStringCollection; if (strings != null) { strings.AddDelimited(value.ToString()); } } else { strings = new DelimitedStringCollection(value.ToString()); } return(strings ?? base.ConvertFrom(context, culture, value)); }