// 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();
            }
        }