User Tools

Site Tools


notes:csharp:serialization

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
notes:csharp:serialization [2018/12/08]
leszek [DataContractJsonSerializer]
notes:csharp:serialization [2018/12/08] (current)
leszek [DataContractJsonSerializer]
Line 103: Line 103:
 using System.Runtime.Serialization;​ using System.Runtime.Serialization;​
 using System.Runtime.Serialization.Json;​ using System.Runtime.Serialization.Json;​
- +... 
-namespace ConsoleApp+static void Main(string[] args)
 { {
-    ​class Program+    ​var countries = new List<​Country>​()
     {     {
-        ​static void Main(string[] args)+        ​new Country
         {         {
-            ​var countries ​= new List<Country>()+            ​Name = "​Canada",​ 
 +            Provinces ​= new List<Province>()
             {             {
-                new Country+                new Province
                 {                 {
-                    Name = "Canada", +                    Name = "Quebec", 
-                    ​Provinces ​= new List<Province>()+                    ​Cities ​= new List<City>()
                     {                     {
-                        new Province+                        new City
                         {                         {
-                            Name = "Quebec", +                            Name = "Montreal", 
-                            ​Cities = new List<​City>​() +                            Area = 431, 
-                            { +                            Population = 1704694
-                                new City +
-                                { +
-                                    Name = "​Montreal",​ +
-                                    ​Area = 431, +
-                                    Population = 1704694 +
-                                } +
-                            }+
                         }                         }
                     }                     }
                 }                 }
-            };+            ​
 +        } 
 +    ​};
  
-            ​DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<​Country>​));​+    ​DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<​Country>​));​
  
-            ​using (MemoryStream stream = new MemoryStream()) +    ​using (MemoryStream stream = new MemoryStream()) 
-            +    
-                // Serialize +        // Serialize 
-                ser.WriteObject(stream,​ countries);+        ser.WriteObject(stream,​ countries);
  
-                ​stream.Position = 0; +        ​stream.Position = 0; 
-                StreamReader reader = new StreamReader(stream);​ +        StreamReader reader = new StreamReader(stream);​ 
-                Console.WriteLine(reader.ReadToEnd());​ +        Console.WriteLine(reader.ReadToEnd());​ 
-                // [{"​Name":"​Canada","​Provinces":​[{"​Cities":​ +        // displays: ​[{"​Name":"​Canada","​Provinces":​[{"​Cities":​ 
-                // [{"​Area":​431,"​Name":"​Montreal","​Population":​1704694}],"​Name":"​Quebec"​}]}]+        // [{"​Area":​431,"​Name":"​Montreal","​Population":​1704694}],"​Name":"​Quebec"​}]}]
  
-                ​// Deserialize +        ​// Deserialize 
-                stream.Position = 0; +        stream.Position = 0; 
-                List<​Country>​ result = (List<​Country>​)ser.ReadObject(stream);​ +        List<​Country>​ result = (List<​Country>​)ser.ReadObject(stream);​
-            } +
-        }+
     }     }
 +}
 +...
 +[DataContract]
 +public class Country
 +{
 +    [DataMember] public string Name { get; set; }
 +    [DataMember] public List<​Province>​ Provinces { get; set; }
 +}
  
-    ​[DataContract] +[DataContract] 
-    public class Country +public class Province 
-    +
-        [DataMember] public string Name { get; set; } +    [DataMember] public string Name { get; set; } 
-        [DataMember] public List<ProvinceProvinces ​{ get; set; } +    [DataMember] public List<CityCities ​{ get; set; } 
-    }+}
  
-    ​[DataContract] +[DataContract] 
-    public class Province +public class City 
-    +
-        [DataMember] public string Name { get; set; } +    [DataMember] public string Name { get; set; } 
-        [DataMember] public List<​City>​ Cities ​{ get; set; } +    [DataMember] public int Area { get; set; } 
-    ​+    [DataMember] public int Population { get; set; }
- +
-    [DataContract] +
-    public class City +
-    { +
-        [DataMember] public string Name { get; set; } +
-        ​[DataMember] public int Area { get; set; } +
-        [DataMember] public int Population { get; set; +
-    ​}+
 } }
 </​code>​ </​code>​
notes/csharp/serialization.txt · Last modified: 2018/12/08 by leszek