相关疑难解决方法(0)

带有自定义响应包装器的 ASP.NET Core 3.1 Web API 中的 JSON 响应中断

我正在开发一个 ASP.NET 2.2 Web API 项目,该项目使用包装器来生成一致的响应。经过一番搜索,我发现团队遵循了文章“管理异常和一致响应的自定义包装器”中的实现。

这按预期工作。现在我们计划升级到 ASP.NET Core 3.1。升级后,这不能按预期工作。我认为这是由于 ASP.NET Core 2.2 和 3.1 之间的重大变化。我按照 Microsoft 的Migrate from ASP.NET Core 2.2 to 3.0指南修复了所有这些问题。

现在我来自 API 的 JSON 响应中断了。

这是响应成功时执行的代码:

private static Task HandleSuccessRequestAsync(HttpContext context, object body, int code)  
{  
    context.Response.ContentType = "application/json";  
    string jsonString, bodyText = string.Empty;  
    APIResponse apiResponse = null;  


    if (!body.ToString().IsValidJson())  
        bodyText = JsonConvert.SerializeObject(body);  
    else  
        bodyText = body.ToString();  

    dynamic bodyContent = JsonConvert.DeserializeObject<dynamic>(bodyText);  
    Type type;  

    type = bodyContent?.GetType();  

    if (type.Equals(typeof(Newtonsoft.Json.Linq.JObject)))  
    {  
        apiResponse = JsonConvert.DeserializeObject<APIResponse>(bodyText); …
Run Code Online (Sandbox Code Playgroud)

c# serialization json asp.net-core-webapi asp.net-core-3.1

1
推荐指数
1
解决办法
1486
查看次数