Skip to content

Commit aae77b5

Browse files
committed
-Demos
1 parent c8fa450 commit aae77b5

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

Build/build.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
properties {
2-
$zipFileName = "Json35r7.zip"
2+
$zipFileName = "Json35r8.zip"
33
$signAssemblies = $false
44
$signKeyPath = "D:\Development\Releases\newtonsoft.snk"
55
$buildDocumentation = $false

Src/Newtonsoft.Json.Tests/Serialization/TypeNameHandlingTests.cs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,5 +538,46 @@ public void CollectionWithAbstractItems()
538538
Assert.AreEqual(1, list.Count);
539539
Assert.IsInstanceOfType(typeof(ContentSubClass), list[0]);
540540
}
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; }
541582
}
542583
}

0 commit comments

Comments
 (0)