<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />

JsonObjectContract

Contract details for a Type used by the JsonSerializer.
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Utilities; using System; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace Newtonsoft.Json.Serialization { [System.Runtime.CompilerServices.NullableContext(2)] [System.Runtime.CompilerServices.Nullable(0)] public class JsonObjectContract : JsonContainerContract { internal bool ExtensionDataIsJToken; private bool? _hasRequiredOrDefaultValueProperties; [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] private ObjectConstructor<object> _overrideCreator; [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] private ObjectConstructor<object> _parameterizedCreator; private JsonPropertyCollection _creatorParameters; private Type _extensionDataValueType; public MemberSerialization MemberSerialization { get; set; } public MissingMemberHandling? MissingMemberHandling { get; set; } public Required? ItemRequired { get; set; } public NullValueHandling? ItemNullValueHandling { get; set; } [System.Runtime.CompilerServices.Nullable(1)] [field: System.Runtime.CompilerServices.Nullable(1)] public JsonPropertyCollection Properties { [System.Runtime.CompilerServices.NullableContext(1)] get; } [System.Runtime.CompilerServices.Nullable(1)] public JsonPropertyCollection CreatorParameters { [System.Runtime.CompilerServices.NullableContext(1)] get { if (_creatorParameters == null) _creatorParameters = new JsonPropertyCollection(base.UnderlyingType); return _creatorParameters; } } [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] public ObjectConstructor<object> OverrideCreator { [return: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] get { return _overrideCreator; } [param: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] set { _overrideCreator = value; } } [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] internal ObjectConstructor<object> ParameterizedCreator { [return: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] get { return _parameterizedCreator; } [param: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] set { _parameterizedCreator = value; } } public ExtensionDataSetter ExtensionDataSetter { get; set; } public ExtensionDataGetter ExtensionDataGetter { get; set; } public Type ExtensionDataValueType { get { return _extensionDataValueType; } set { _extensionDataValueType = value; ExtensionDataIsJToken = ((object)value != null && typeof(JToken).IsAssignableFrom(value)); } } [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1, 1 })] [field: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1, 1 })] public Func<string, string> ExtensionDataNameResolver { [return: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1, 1 })] get; [param: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1, 1 })] set; } internal bool HasRequiredOrDefaultValueProperties { get { if (!_hasRequiredOrDefaultValueProperties.HasValue) { _hasRequiredOrDefaultValueProperties = false; if (ItemRequired.GetValueOrDefault(Required.Default) != 0) _hasRequiredOrDefaultValueProperties = true; else { using (IEnumerator<JsonProperty> enumerator = Properties.GetEnumerator()) { while (true) { if (enumerator.MoveNext()) { JsonProperty current = enumerator.Current; if (current.Required == Required.Default) { DefaultValueHandling? nullable = (DefaultValueHandling?)((int?)current.DefaultValueHandling & 2); DefaultValueHandling defaultValueHandling = DefaultValueHandling.Populate; if (!((nullable.GetValueOrDefault() == defaultValueHandling) & nullable.HasValue)) continue; } _hasRequiredOrDefaultValueProperties = true; } break; } } } } return _hasRequiredOrDefaultValueProperties.GetValueOrDefault(); } } [System.Runtime.CompilerServices.NullableContext(1)] public JsonObjectContract(Type underlyingType) : base(underlyingType) { ContractType = JsonContractType.Object; Properties = new JsonPropertyCollection(base.UnderlyingType); } } }