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

JsonContainerContract

Contract details for a Type used by the JsonSerializer.
using Newtonsoft.Json.Utilities; using System; namespace Newtonsoft.Json.Serialization { public class JsonContainerContract : JsonContract { private JsonContract _itemContract; private JsonContract _finalItemContract; internal JsonContract ItemContract { get { return _itemContract; } set { _itemContract = value; if (_itemContract != null) _finalItemContract = (_itemContract.UnderlyingType.IsSealed() ? _itemContract : null); else _finalItemContract = null; } } internal JsonContract FinalItemContract => _finalItemContract; public JsonConverter ItemConverter { get; set; } public bool? ItemIsReference { get; set; } public ReferenceLoopHandling? ItemReferenceLoopHandling { get; set; } public TypeNameHandling? ItemTypeNameHandling { get; set; } internal JsonContainerContract(Type underlyingType) : base(underlyingType) { JsonContainerAttribute cachedAttribute = JsonTypeReflector.GetCachedAttribute<JsonContainerAttribute>(underlyingType); if (cachedAttribute != null) { if (cachedAttribute.ItemConverterType != (Type)null) ItemConverter = JsonTypeReflector.CreateJsonConverterInstance(cachedAttribute.ItemConverterType, cachedAttribute.ItemConverterParameters); ItemIsReference = cachedAttribute._itemIsReference; ItemReferenceLoopHandling = cachedAttribute._itemReferenceLoopHandling; ItemTypeNameHandling = cachedAttribute._itemTypeNameHandling; } } } }