RicoSuter / NJsonSchema

JSON Schema reader, generator and validator for .NET
http://NJsonSchema.org
MIT License
1.39k stars 535 forks source link

Unable to cast object of type 'NSwag.OpenApiDocument' to type 'NJsonSchema.JsonSchema' #1663

Open brendonparker opened 8 months ago

brendonparker commented 8 months ago

I'm sure this is a dumb question. I have an openapi spec provided to me. I want to generate the CSharp objects. Trying this:

using NJsonSchema.CodeGeneration.CSharp;

var openapi = await NSwag.OpenApiDocument.FromFileAsync("spec.json");
var generator = new CSharpGenerator(openapi);
var file = generator.GenerateFile();

Console.WriteLine(file);

But getting:

Unhandled exception. System.InvalidCastException: Unable to cast object of type 'NSwag.OpenApiDocument' to type 'NJsonSchema.JsonSchema'.
   at NJsonSchema.CodeGeneration.GeneratorBase.GenerateFile()

The Readme seems to indicate that this is supported (openapi), but what is the recipe to make this happen?

net8.0 with the following packages:

<PackageReference Include="NJsonSchema.CodeGeneration.CSharp" Version="11.0.0" />
<PackageReference Include="NSwag.Core" Version="14.0.0" />
Purgator commented 7 months ago

I would read it as a JsonSchema:

 var schema = await JsonSchema.FromFileAsync( "spec.json" );