NSwag создает JSON со случайными именами классов. ⇐ C#
NSwag создает JSON со случайными именами классов.
Этот код работает — вроде как. Это создаст что-то, что работает. Но он использует имена классов, например: Body1, Body2, Body3 и Ответ1, Ответ2, Ответ3, Ответ4
Возможно, мне просто не хватает простого варианта, но я просто не могу понять, какой именно.
Это прекрасно работает, если я использую графический интерфейс. Но графический интерфейс не учитывает имена JSON и будет настаивать на переименовании их в UpperCamelCase
var document = NSwag.OpenApiDocument.FromUrlAsync(url).Result; настройки var = новый NSwag.CodeGeneration.CSharp.CSharpClientGeneratorSettings { ГенератеКлиентКлассес = правда, ГенератеКлиентИнтерфейс = правда, Инжектхттпклиент = правда, DisposeHttpClient = правда, GenerateExceptionClasses = true, ExceptionClass = "EdiException", WrapDtoExceptions = правда, UseHttpClientCreationMethod = ложь, HttpClientType = "System.Net.Http.HttpClient", UseHttpRequestMessageCreationMethod = false, UseBaseUrl = правда, GenerateBaseUrlProperty = правда, Генератесинкметодс = ложь, GeneratePrepareRequestAndProcessResponseAsAsyncMethods = false, ExposeJsonSerializerSettings = true, ClientClassAccessModifier = "публичный", ИмяКласса = "Служба Отмены", CSharpGeneratorSettings = { TypeAccessModifier = "публичный", Пространство имен = "Edlund.NonLifeCore.Shared.DK.CancellationService", PropertyNameGenerator = UseNameGenerator, ГенератеДанныеАннотации = правда, ГенерироватьJsonMethods = правда, GenerateDefaultValues = true, ClassStyle = NJsonSchema.CodeGeneration.CSharp.CSharpClassStyle.Poco, JsonLibrary = NJsonSchema.CodeGeneration.CSharp.CSharpJsonLibrary.NewtonsoftJson, } }; вар преобразователь = новый NJsonSchema.CodeGeneration.CSharp.CSharpTypeResolver(settings.CSharpGeneratorSettings); генератор вар = новый NSwag.CodeGeneration.CSharp.CSharpClientGenerator (документ, настройки, преобразователь); вар клиент = генератор.GenerateFile(); File.WriteAllLines(OutputPath + ".cs", new List {client }); } } Открытый класс CustomRespectSwaggerPropertyNameGenerator: IPropertyNameGenerator { /// Генерирует имя свойства. /// Свойство. /// Новое имя. строка IPropertyNameGenerator.Generate (свойство JsonSchemaProperty) { вернуть свойство.Name.Replace('_', '-') .Заменять("@", "") .Заменять(".", "-"); } }
Этот код работает — вроде как. Это создаст что-то, что работает. Но он использует имена классов, например: Body1, Body2, Body3 и Ответ1, Ответ2, Ответ3, Ответ4
Возможно, мне просто не хватает простого варианта, но я просто не могу понять, какой именно.
Это прекрасно работает, если я использую графический интерфейс. Но графический интерфейс не учитывает имена JSON и будет настаивать на переименовании их в UpperCamelCase
var document = NSwag.OpenApiDocument.FromUrlAsync(url).Result; настройки var = новый NSwag.CodeGeneration.CSharp.CSharpClientGeneratorSettings { ГенератеКлиентКлассес = правда, ГенератеКлиентИнтерфейс = правда, Инжектхттпклиент = правда, DisposeHttpClient = правда, GenerateExceptionClasses = true, ExceptionClass = "EdiException", WrapDtoExceptions = правда, UseHttpClientCreationMethod = ложь, HttpClientType = "System.Net.Http.HttpClient", UseHttpRequestMessageCreationMethod = false, UseBaseUrl = правда, GenerateBaseUrlProperty = правда, Генератесинкметодс = ложь, GeneratePrepareRequestAndProcessResponseAsAsyncMethods = false, ExposeJsonSerializerSettings = true, ClientClassAccessModifier = "публичный", ИмяКласса = "Служба Отмены", CSharpGeneratorSettings = { TypeAccessModifier = "публичный", Пространство имен = "Edlund.NonLifeCore.Shared.DK.CancellationService", PropertyNameGenerator = UseNameGenerator, ГенератеДанныеАннотации = правда, ГенерироватьJsonMethods = правда, GenerateDefaultValues = true, ClassStyle = NJsonSchema.CodeGeneration.CSharp.CSharpClassStyle.Poco, JsonLibrary = NJsonSchema.CodeGeneration.CSharp.CSharpJsonLibrary.NewtonsoftJson, } }; вар преобразователь = новый NJsonSchema.CodeGeneration.CSharp.CSharpTypeResolver(settings.CSharpGeneratorSettings); генератор вар = новый NSwag.CodeGeneration.CSharp.CSharpClientGenerator (документ, настройки, преобразователь); вар клиент = генератор.GenerateFile(); File.WriteAllLines(OutputPath + ".cs", new List {client }); } } Открытый класс CustomRespectSwaggerPropertyNameGenerator: IPropertyNameGenerator { /// Генерирует имя свойства. /// Свойство. /// Новое имя. строка IPropertyNameGenerator.Generate (свойство JsonSchemaProperty) { вернуть свойство.Name.Replace('_', '-') .Заменять("@", "") .Заменять(".", "-"); } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Компонент Gradio Image() для загрузки изображений со случайными именами
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-