// convert to Byte Array in order to load XML to database public static byte[] ObjToByteArray(PhoneBook phoneBook) { var xmlSerializer = new XmlSerializer(typeof(PhoneBook)); var memoryStream = new MemoryStream(); // XML header have "utf-8" // better use Unicode, so it will be "utf-32" //var xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF32); var xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); xmlSerializer.Serialize(xmlTextWriter, phoneBook); memoryStream = (MemoryStream)xmlTextWriter.BaseStream; return memoryStream.ToArray(); }
private static void ConvertObjectToXml(PhoneBook phoneBook) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(PhoneBook)); // it's better to use Form.GetType() for generics // save to file on the hard drive StreamWriter streamWriter = new StreamWriter("XML/PhoneBookRecreated.xml"); xmlSerializer.Serialize(streamWriter, phoneBook); // example how to convert to string, instead of file (for debug purposes) using (StringWriter stringWriter = new StringWriter()) { xmlSerializer.Serialize(stringWriter, phoneBook); string s = stringWriter.ToString(); } }
private static void PrintPhoneBook(PhoneBook phoneBook) { foreach (var person in phoneBook.People) { Console.WriteLine("{0} , active = {1}", person.Name, person.Active); foreach (var phone in person.Phones) Console.Write(" {0}:{1}", phone.Type.ToString(), phone.Number); Console.WriteLine(); Console.WriteLine(); } }