예제 #1
0
파일: Program.cs 프로젝트: rosekoh/studies
        static void Main(string[] args)
        {
            /* Data contract serialization typically reads and writes XML data. You use a
             * DataContractSerializer object for data contract serialization. Its
             * WriteObject() method can write to a stream, or it can write to an object that
             * extends XmlDictionaryWriter, an abstract class that controls XML output and
             * can be extended to change the way the XML output is written. Objects are
             * deserialized using the ReadObject() method, which can read XML data from
             * a stream or an XmlDictionaryReader.
             */
            DataContractSerializer serializer = new DataContractSerializer(typeof(SerializableGuy));
            // We'll create a new SerializableGuy object and serialize it using a FileStream.
            SerializableGuy guyToWrite = new SerializableGuy("Joe", 37, 150);

            using (FileStream writer = new FileStream("serialized_guy.xml", FileMode.Create))
            {
                serializer.WriteObject(writer, guyToWrite);
            }
            // We can open the file we just wrote and deserialize it into a new guy using ReadObject().
            // We'll use the XmlDictionaryReader.CreateTextReader() method to create an object that
            // reads XML data from a stream.
            SerializableGuy guyToRead = null;

            using (FileStream inputStream = new FileStream("serialized_guy.xml", FileMode.Open))
                using (XmlDictionaryReader reader =
                           XmlDictionaryReader.CreateTextReader(inputStream, new XmlDictionaryReaderQuotas()))
                {
                    guyToRead = serializer.ReadObject(reader, true) as SerializableGuy;
                }
            Console.WriteLine(guyToRead);
            // Output: Joe is 37 years old and has 150 bucks [1461194451,0]
            string xmlGuy = @"<Guy xmlns=""http://www.headfirstlabs.com"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"">
<Age>43</Age>
<Cash>225</Cash>
<Name>Bob</Name>
<secretNumberOne>54321</secretNumberOne>
</Guy>";

            byte[] buffer = UnicodeEncoding.UTF8.GetBytes(xmlGuy);
            using (XmlDictionaryReader reader =
                       XmlDictionaryReader.CreateTextReader(buffer, new XmlDictionaryReaderQuotas()))
            {
                guyToRead = serializer.ReadObject(reader, true) as SerializableGuy;
            }
            Console.WriteLine(guyToRead);
            // Output: Bob is 43 years old and has 225 bucks [54321,0]
#if DEBUG
            Console.ReadKey();
#endif
        }
예제 #2
0
파일: Program.cs 프로젝트: breaker/studies
 static void Main(string[] args)
 {
     /* Data contract serialization typically reads and writes XML data. You use a
      * DataContractSerializer object for data contract serialization. Its
      * WriteObject() method can write to a stream, or it can write to an object that
      * extends XmlDictionaryWriter, an abstract class that controls XML output and
      * can be extended to change the way the XML output is written. Objects are
      * deserialized using the ReadObject() method, which can read XML data from
      * a stream or an XmlDictionaryReader.
      */
     DataContractSerializer serializer = new DataContractSerializer(typeof(SerializableGuy));
     // We'll create a new SerializableGuy object and serialize it using a FileStream.
     SerializableGuy guyToWrite = new SerializableGuy("Joe", 37, 150);
     using (FileStream writer = new FileStream("serialized_guy.xml", FileMode.Create))
     {
         serializer.WriteObject(writer, guyToWrite);
     }
     // We can open the file we just wrote and deserialize it into a new guy using ReadObject().
     // We'll use the XmlDictionaryReader.CreateTextReader() method to create an object that
     // reads XML data from a stream.
     SerializableGuy guyToRead = null;
     using (FileStream inputStream = new FileStream("serialized_guy.xml", FileMode.Open))
     using (XmlDictionaryReader reader =
     XmlDictionaryReader.CreateTextReader(inputStream, new XmlDictionaryReaderQuotas()))
     {
         guyToRead = serializer.ReadObject(reader, true) as SerializableGuy;
     }
     Console.WriteLine(guyToRead);
     // Output: Joe is 37 years old and has 150 bucks [1461194451,0]
     string xmlGuy = @"<Guy xmlns=""http://www.headfirstlabs.com"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"">
     <Age>43</Age>
     <Cash>225</Cash>
     <Name>Bob</Name>
     <secretNumberOne>54321</secretNumberOne>
     </Guy>";
     byte[] buffer = UnicodeEncoding.UTF8.GetBytes(xmlGuy);
     using (XmlDictionaryReader reader =
     XmlDictionaryReader.CreateTextReader(buffer, new XmlDictionaryReaderQuotas()))
     {
         guyToRead = serializer.ReadObject(reader, true) as SerializableGuy;
     }
     Console.WriteLine(guyToRead);
     // Output: Bob is 43 years old and has 225 bucks [54321,0]
     #if DEBUG
     Console.ReadKey();
     #endif
 }