Im generating c# class from json schema with next code:
var schemaName = Path.GetFileNameWithoutExtension(schemaDestination)
.Humanize().Pascalize().Replace("Schema", "");
var json = File.ReadAllText(schemaDestination);
var schema = await JsonSchema.FromJsonAsync(json);
schema.Title = $"{schemaName}BusMessage";
var genSettings = new CSharpGeneratorSettings
{
ClassStyle = CSharpClassStyle.Poco,
JsonLibrary = CSharpJsonLibrary.SystemTextJson,
Namespace = $"CourierService.Application.Generated.{schemaName}BusMessage",
GenerateDataAnnotations = false, // Disable NSwag annotations
GenerateOptionalPropertiesAsNullable = true, // Optional: To make properties nullable
GenerateJsonMethods = false, // Disable generation of JSON methods (ToJson, FromJson)
GenerateNullableReferenceTypes = true, // Optional: To generate nullable reference types
};
var generator = new CSharpGenerator(schema, genSettings, new CSharpTypeResolver(genSettings));
var res = generator.GenerateFile();
await File.WriteAllTextAsync($"../{destinationDir}/{schemaName}BusMessage.cs", res);
and i get:
//----------------------
// <auto-generated>
// Generated using the NSwag toolchain v11.0.0.0 (Newtonsoft.Json v13.0.0.0) (http://NSwag.org)
// </auto-generated>
//----------------------
#nullable enable
#pragma warning disable 108 // Disable "CS0108 '{derivedDto}.ToJson()' hides inherited member '{dtoBase}.ToJson()'. Use the new keyword if hiding was intended."
#pragma warning disable 114 // Disable "CS0114 '{derivedDto}.RaisePropertyChanged(String)' hides inherited member 'dtoBase.RaisePropertyChanged(String)'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword."
#pragma warning disable 472 // Disable "CS0472 The result of the expression is always 'false' since a value of type 'Int32' is never equal to 'null' of type 'Int32?'
#pragma warning disable 612 // Disable "CS0612 '...' is obsolete"
#pragma warning disable 1573 // Disable "CS1573 Parameter '...' has no matching param tag in the XML comment for ...
#pragma warning disable 1591 // Disable "CS1591 Missing XML comment for publicly visible type or member ..."
#pragma warning disable 8073 // Disable "CS8073 The result of the expression is always 'false' since a value of type 'T' is never equal to 'null' of type 'T?'"
#pragma warning disable 3016 // Disable "CS3016 Arrays as attribute arguments is not CLS-compliant"
#pragma warning disable 8603 // Disable "CS8603 Possible null reference return"
#pragma warning disable 8604 // Disable "CS8604 Possible null reference argument for parameter"
#pragma warning disable 8625 // Disable "CS8625 Cannot convert null literal to non-nullable reference type"
namespace CourierService.Application.Generated.DeliveryRequestBusMessage
{
using System = global::System;
}
#pragma warning restore 108
#pragma warning restore 114
#pragma warning restore 472
#pragma warning restore 612
#pragma warning restore 1573
#pragma warning restore 1591
#pragma warning restore 8073
#pragma warning restore 3016
#pragma warning restore 8603
#pragma warning restore 8604
#pragma warning restore 8625
Basicly a empty class, the problem is that i have allready generating in this solution api controller with NSwag.CodeGeneration.CSharp and if i disable it, its generating fine my c# class without this header Generated using the NSwag toolchain v11.0.0.0 (Newtonsoft.Json v13.0.0.0) (http://NSwag.org), its somehow overriding GenerateFile method and generating with NSwag, i allready tried to call this method directly from nuget with reflection but i got same result, please help to solve it.