using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Net.Http.Formatting;
using System.Xml.Serialization;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class Person
private PersonalDetails _details;
private Address _address;
private bool _iDSpecified;
private bool _detailsSpecified;
private bool _addressSpecified;
this._address = new Address();
this._details = new PersonalDetails();
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public PersonalDetails Details
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
return this._iDSpecified;
this._iDSpecified = value;
public bool DetailsSpecified
return this._detailsSpecified;
this._detailsSpecified = value;
public bool AddressSpecified
return this._addressSpecified;
this._addressSpecified = value;
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class PersonalDetails
private string _firstName;
private string _lastName;
private System.DateTime _birthDate;
private bool _firstNameSpecified;
private bool _lastNameSpecified;
private bool _birthDateSpecified;
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, DataType = "date")]
public System.DateTime BirthDate
public bool FirstNameSpecified
return this._firstNameSpecified;
this._firstNameSpecified = value;
public bool LastNameSpecified
return this._lastNameSpecified;
this._lastNameSpecified = value;
public bool BirthDateSpecified
return this._birthDateSpecified;
this._birthDateSpecified = value;
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4084.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class Address
private bool _streetSpecified;
private bool _nrSpecified;
private bool _postboxSpecified;
private bool _zIPSpecified;
private bool _citySpecified;
private bool _countrySpecified;
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public bool StreetSpecified
return this._streetSpecified;
this._streetSpecified = value;
return this._nrSpecified;
this._nrSpecified = value;
public bool PostboxSpecified
return this._postboxSpecified;
this._postboxSpecified = value;
return this._zIPSpecified;
this._zIPSpecified = value;
public bool CitySpecified
return this._citySpecified;
this._citySpecified = value;
public bool CountrySpecified
return this._countrySpecified;
this._countrySpecified = value;
public static void Test()
var jsonFormatter = new JsonMediaTypeFormatter();
jsonFormatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
jsonFormatter.SerializerSettings.ObjectCreationHandling = ObjectCreationHandling.Replace;
""BirthDate"": ""1990-06-20""
using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(json)))
var person = (Person)jsonFormatter.ReadFromStream(typeof(Person), stream, Encoding.UTF8, null);
Assert.IsTrue(person.DetailsSpecified, "person.DetailsSpecified");
Assert.IsTrue(person.IDSpecified, "person.IDSpecified");
Assert.IsTrue(person.Details.FirstNameSpecified, "person.Details.FirstNameSpecified");
Assert.IsTrue(person.Details.LastNameSpecified, "person.Details.LastNameSpecified");
Assert.IsTrue(person.Details.BirthDateSpecified, "person.Details.BirthDateSpecified");
public static void Main()
Console.WriteLine("Environment version: " + Environment.Version);
Console.WriteLine("{0} version: {1}", typeof(JsonSerializer).Namespace, typeof(JsonSerializer).Assembly.FullName);
Console.WriteLine("Failed with unhandled exception: ");