protected override async Task <IJsonReference> VisitJsonReferenceAsync(IJsonReference reference, string path, string typeNameHint, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); if (reference.ReferencePath != null && reference.Reference == null) { if (_replaceRefsRound) { if (path.EndsWith("/definitions/" + typeNameHint) || path.EndsWith("/schemas/" + typeNameHint)) { // inline $refs in "definitions" return(await _referenceResolver .ResolveReferenceWithoutAppendAsync(_rootObject, reference.ReferencePath, reference.GetType(), _contractResolver) .ConfigureAwait(false)); } } else { // load $refs and add them to "definitions" reference.Reference = await _referenceResolver .ResolveReferenceAsync(_rootObject, reference.ReferencePath, reference.GetType(), _contractResolver) .ConfigureAwait(false); } } return(reference); }
protected override async Task <IJsonReference> VisitJsonReferenceAsync(IJsonReference reference, string path, string typeNameHint) { if (reference.ReferencePath != null && reference.Reference == null) { if (_replaceRefsRound) { if (path.EndsWith("/definitions/" + typeNameHint)) { // inline $refs in "definitions" return(await _referenceResolver .ResolveReferenceWithoutAppendAsync(_rootObject, reference.ReferencePath) .ConfigureAwait(false)); } } else { // load $refs and add them to "definitions" reference.Reference = await _referenceResolver .ResolveReferenceAsync(_rootObject, reference.ReferencePath) .ConfigureAwait(false); } } return(reference); }