public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if ((destinationType != null) && (value is Point3DCollection)) { Point3DCollection points = (Point3DCollection)value; if (destinationType == typeof(InstanceDescriptor)) { ConstructorInfo ci = typeof(Point3DCollection).GetConstructor(new Type[] { typeof(Point3D[]) }); return(new InstanceDescriptor(ci, new object[] { points.ToArray() })); } else if (destinationType == typeof(string)) { return(points.ConvertToString(null, culture)); } } return(base.ConvertTo(context, culture, value, destinationType)); }