private JsonSerializerProxy GetInternalSerializer()
        {
            if (InternalSerializer == null)
            {
                InternalSerializer = new JsonSerializerProxy(this);
            }

            return(InternalSerializer);
        }
        private BidirectionalDictionary <string, object> GetMappings(object context)
        {
            JsonSerializerInternalBase internalSerializer = context as JsonSerializerInternalBase;

            if (internalSerializer == null)
            {
                JsonSerializerProxy proxy = context as JsonSerializerProxy;
                if (proxy != null)
                {
                    internalSerializer = proxy.GetInternalSerializer();
                }
                else
                {
                    throw new JsonException("The DefaultReferenceResolver can only be used internally.");
                }
            }

            return(internalSerializer.DefaultReferenceMappings);
        }