public static class Helper { public static List<T> RetrieveList<T>(string s) { XmlSerializer xs = new XmlSerializer(typeof(List<T>)); System.Xml.XmlReader v = System.Xml.XmlReader.Create(new StringReader(s)); return (List<T>)xs.Deserialize(v); } public static string ConvertToXML<T>(List<T> list) { XmlSerializer xs = new XmlSerializer(typeof(List<T>)); StringWriter sw = new StringWriter(); xs.Serialize(sw, list); return sw.ToString(); } }Example use:
List<Contact> list = new List<Contact>(); list.Add(new Contact { Name = "Fred", Age = 33 }); list.Add(new Contact { Name = "Joe", Age = 66 }); string xmlString = Helper.ConvertToXML<Contact>(list); //(Examine this string to determine what VFP should create) List<Contact> retrievedList = Helper.RetrieveList<Contact>(xmlString);>Thanks for the tip. In the meantime, I've decided to switch to sending XML and convert that to a DataTable that I can iterate through. That seems to do the trick for now.
>>>public void AddClientsToList(Contact[] contacts, string listName) >>>>>>
public class MyDll >> { >> Dictionary<string, List<Contact>> lists = new Dictionary<string, List<Contact>>(); >> public Contact GetNewContact() { return new Contact();} >> >> public void AddClientToList(Contact contact,string listName) >> { >> if (!lists.Keys.Contains(listName)) >> lists.Add(listName, new List<Contact>()); >> lists[listName].Add(contact); >> } >> }