public Func <Uri, JsonLdLoaderOptions, RemoteDocument> GetDocumentLoader()
 {
     return((uri, options) =>
     {
         if (Documents.TryGetValue(uri, out var document))
         {
             return document;
         }
         var doc = DefaultDocumentLoader.LoadJson(uri, options);
         Documents.TryAdd(uri, doc);
         return doc;
     });
 }
        public RemoteDocument Load(Uri uri, JsonLdLoaderOptions options)
        {
            foreach (var item in documentProviders)
            {
                if (item.CanResolve(uri.ToString()))
                {
                    var didDocument = item.ResolveAsync(uri.ToString()).Result;
                    return(new RemoteDocument {
                        Document = didDocument
                    });
                }
            }
            if (Documents.TryGetValue(uri.ToString(), out var document))
            {
                return(document);
            }
            var doc = DefaultDocumentLoader.LoadJson(uri, options);

            Documents.TryAdd(uri.ToString(), doc);
            return(doc);
        }