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

JsonObjectContract

Contract details for a Type used by the JsonSerializer.
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Utilities; using System; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Runtime.CompilerServices; using System.Runtime.Serialization; using System.Security; 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 = (value != (Type)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 { foreach (JsonProperty property in Properties) { if (property.Required != 0 || ((DefaultValueHandling?)((int?)property.DefaultValueHandling & 2)).GetValueOrDefault() == DefaultValueHandling.Populate) { _hasRequiredOrDefaultValueProperties = true; break; } } } } return _hasRequiredOrDefaultValueProperties.GetValueOrDefault(); } } [System.Runtime.CompilerServices.NullableContext(1)] [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Newtonsoft.Json relies on reflection over types that may be removed when trimming.")] [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Newtonsoft.Json relies on dynamically creating types that may not be available with Ahead of Time compilation.")] public JsonObjectContract(Type underlyingType) : base(underlyingType) { ContractType = JsonContractType.Object; Properties = new JsonPropertyCollection(base.UnderlyingType); } [System.Runtime.CompilerServices.NullableContext(1)] [SecuritySafeCritical] internal object GetUninitializedObject() { if (!JsonTypeReflector.FullyTrusted) throw new JsonException("Insufficient permissions. Creating an uninitialized '{0}' type requires full trust.".FormatWith(CultureInfo.InvariantCulture, NonNullableUnderlyingType)); return FormatterServices.GetUninitializedObject(NonNullableUnderlyingType); } } }