JsonSchemaVisitorBase
Visitor to transform an object with JsonSchema objects.
using NJsonSchema.References;
using System.Threading.Tasks;
namespace NJsonSchema.Visitors
{
public abstract class JsonSchemaVisitorBase : JsonReferenceVisitorBase
{
protected abstract Task<JsonSchema> VisitSchemaAsync(JsonSchema schema, string path, string typeNameHint);
protected override async Task<IJsonReference> VisitJsonReferenceAsync(IJsonReference reference, string path, string typeNameHint)
{
JsonSchema schema;
if ((schema = (reference as JsonSchema)) != null) {
ConfiguredTaskAwaiter val = AwaitExtensions.ConfigureAwait<JsonSchema>(VisitSchemaAsync(schema, path, typeNameHint), false).GetAwaiter();
if (!val.get_IsCompleted()) {
await val;
ConfiguredTaskAwaiter val2 = default(ConfiguredTaskAwaiter);
val = val2;
}
return (IJsonReference)val.GetResult();
}
return reference;
}
}
}