我正在使用下面的代码为我的Blazor WebAssembly项目生成一个WebAssembly客户端API。
using (HttpResponseMessage response = client.GetAsync("https://localhost:5001/swagger/v1/swagger.json").Result)
{
using (HttpContent contentapi = response.Content)
{
var json = contentapi.ReadAsStringAsync().Result;
var document = await OpenApiDocument.FromJsonAsync(json);
var settings = new CSharpClientGeneratorSettings
{
ClassName = "Client",
CSharpGeneratorSettings =
{
Namespace = "MyProjectClient",
}
};
var generator = new CSharpClientGenerator(document, settings);
var code = generator.GenerateFile();
}
}
现在我想从Newtonsoft.Json迁移到System.Text.Json,因为我在一些更大的API请求中遇到了非常慢的反序列化(最多几秒钟)。
我已经在网上找到了一些迁移指南,但是我想继续使用我的NSwag工具链来生成我的API,否则它会很好地工作。有人知道如何告诉NSwag工具链使用System.Text.Json而不是Newtonsoft.Json吗?
发布于 2022-04-14 07:10:24
可以通过设置以下方法设置要用于生成客户端的Json库:
JsonLibrary = CSharpJsonLibrary.SystemTextJson
在CSharpGeneratorSettings
初始化中。
遗憾的是,生成的文件仍然包含一些提到Newtonsoft.Json的内容。也许较新的版本会运行良好。
https://stackoverflow.com/questions/71547021
复制相似问题