bool TryGetDescriptor(Type type, out IImmutableObjectDescriptor descriptor)
        {
            if (_cache.TryGetValue(type, out descriptor))
            {
                return(null != descriptor);
            }
            var desc = ImmutableObjectDescriptor.TryCreateDescriptor(type, out var d) ? d : null;

            _cache[type] = desc;
            descriptor   = desc;
            return(null != desc);
        }
 public JsonImmutableConverter(IImmutableObjectDescriptor descriptor)
 {
     _descriptor = descriptor ?? throw new ArgumentNullException(nameof(descriptor));
 }