public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { IEnumerable <T> enumerable = value as IEnumerable <T>; if (enumerable == null) { throw new ArgumentException(); } StringBuilder sb = new StringBuilder(); foreach (T obj in enumerable) { StringWriter sw = new StringWriter(); XmlTextWriter xmlOut = new XmlTextWriter(sw); ApplicationSettingsSerializer.WriteToXml(xmlOut, obj); sb.Append("<HEAD/>"); sb.Append(sw.ToString()); xmlOut.Close(); } return(sb.ToString()); } return(base.ConvertTo(context, culture, value, destinationType)); }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is string) { List <T> list = new List <T>(); string[] elements = Regex.Split(value.ToString(), "<HEAD/>"); foreach (string partial in elements) { T newObj = new T(); StringReader sr = new StringReader(partial); XmlTextReader xmlIn = new XmlTextReader(sr); ApplicationSettingsSerializer.ReadFromXml(xmlIn, newObj); xmlIn.Close(); list.Add(newObj); } return(list); } return(base.ConvertFrom(context, culture, value)); }