File tree Expand file tree Collapse file tree 2 files changed +42
-1
lines changed
Src/Newtonsoft.Json.Tests/Serialization Expand file tree Collapse file tree 2 files changed +42
-1
lines changed Original file line number Diff line number Diff line change 1
1
properties {
2
- $zipFileName = " Json35r7 .zip"
2
+ $zipFileName = " Json35r8 .zip"
3
3
$signAssemblies = $false
4
4
$signKeyPath = " D:\Development\Releases\newtonsoft.snk"
5
5
$buildDocumentation = $false
Original file line number Diff line number Diff line change @@ -538,5 +538,46 @@ public void CollectionWithAbstractItems()
538
538
Assert . AreEqual ( 1 , list . Count ) ;
539
539
Assert . IsInstanceOfType ( typeof ( ContentSubClass ) , list [ 0 ] ) ;
540
540
}
541
+
542
+ [ Test ]
543
+ public void WriteObjectTypeNameForPropertyDemo ( )
544
+ {
545
+ Message message = new Message ( ) ;
546
+ message . Address = "http://www.google.com" ;
547
+ message . Body = new SearchDetails
548
+ {
549
+ Query = "Json.NET" ,
550
+ Language = "en-us"
551
+ } ;
552
+
553
+ string json = JsonConvert . SerializeObject ( message , Formatting . Indented ) ;
554
+ // {
555
+ // "Address": "http://www.google.com",
556
+ // "Body": {
557
+ // "$type": "Newtonsoft.Json.Tests.Serialization.SearchDetails, Newtonsoft.Json.Tests",
558
+ // "Query": "Json.NET",
559
+ // "Language": "en-us"
560
+ // }
561
+ // }
562
+
563
+ Message deserialized = JsonConvert . DeserializeObject < Message > ( json ) ;
564
+
565
+ SearchDetails searchDetails = ( SearchDetails ) deserialized . Body ;
566
+ // Json.NET
567
+ }
568
+ }
569
+
570
+ public class Message
571
+ {
572
+ public string Address { get ; set ; }
573
+
574
+ [ JsonProperty ( TypeNameHandling = TypeNameHandling . All ) ]
575
+ public object Body { get ; set ; }
576
+ }
577
+
578
+ public class SearchDetails
579
+ {
580
+ public string Query { get ; set ; }
581
+ public string Language { get ; set ; }
541
582
}
542
583
}
You can’t perform that action at this time.
0 commit comments