【问题标题】:Serialization and deserialization of > 'System.Action' ASP.NET> \'System.Action\' ASP.NET 的序列化和反序列化
【发布时间】:2022-12-17 08:31:24
【问题描述】:
        var json = JsonConvert.SerializeObject(data);
        var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
        var httpContent = new MultipartFormDataContent();
        httpContent.Add(stringContent, "params");

        using var httpClientHandler = new HttpClientHandler();
        httpClientHandler.ServerCertificateCustomValidationCallback =
            HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
        var httpClient = new HttpClient(httpClientHandler);

        var response = await httpClient.PostAsync(url, httpContent);
        response.EnsureSuccessStatusCode();
        if (!response.IsSuccessStatusCode)

我试图发送 http 请求,但出现异常后异步()线

System.NotSupportedException:序列化和反序列化 不支持“System.Action”实例。路径:$.MoveNextAction。

【问题讨论】:

  • 您可能忘记具体化您的数据库查询,JsonConvert.SerializeObject(data) 这一行导致了异常。你能展示从数据库中获取数据的代码吗?或者data是如何构建的?
  • 数据只是像往常一样创建

标签: c# asp.net .net entity-framework asp.net-core


【解决方案1】:

因此,在不知道 data 的结构的情况下,我只能假设以下内容。您有一个类,其中定义了 Action。像下面这样的东西。

public class YourData
{
    public string Name { get; set; }

    public Action TheAction { get; set; }
}

当您尝试序列化它时,您会收到异常。如果这是您遇到的情况,您将需要更新代表您的数据的类并向其添加属性,这将排除您不想要/不能序列化的属性。像下面这样的东西

[JsonObject(MemberSerialization.OptIn)]
public class ClassWithAction
{
    [JsonProperty]
    public string Name { get; set; }

    public Action TheAction { get; set; }
}

Here is Newtonsoft Reference

【讨论】:

    【解决方案2】:

    Quandotive esse problema ele só aparecia quando estava em modo DEBUG,mas demorei muito a perceber isso。 Derrepente esse pode ser seu problema também。

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 1970-01-01
      • 2013-04-19
      • 2018-12-05
      • 2013-01-08
      • 2015-03-17
      相关资源
      最近更新 更多