当前位置: 首页 > 知识库问答 >
问题:

C#中的k\u BackingField移除(通过虚张声势/虚张声势查看)

毋修为
2023-03-14

我正在ASP中使用Swashback 5。NET webapi项目,具有所有默认设置。它序列化方法的输出,以便向我显示应答的模式。我得到的文档如下所示:

 Response Class (Status 200)
 Model  Model Schema
 [
   {
    "<Key>k__BackingField": "string",
    "<Value>k__BackingField": "string",
    "<Id>k__BackingField": 0
  }
]

这是由以下C#代码生成的

    /// <summary>
    ///     Fetches all system configuration items
    /// </summary>
    /// <returns>List of <see cref="SystemConfigurationDto" /> items</returns>
    public IList<SystemConfigurationDto> GetAllSystemConfigurationItems()
    {
        var result = CommandProcessor.ProcessCommand(new SystemConfigurationQueryCommand()) as SystemConfigurationQueryCommandResponse;

        return result.Results.ToList();
    }

结果在哪里。结果基本上是一个标准的对象列表,每个对象都包含这些键/值/id字段。我在这里读过https://conficient.wordpress.com/2014/05/22/getting-rid-of-k__backingfield-in-serialization/这个[可序列化]属性可能会影响这一点,但如果可能的话,我不愿意去掉这个属性。是否有调整此序列化工件的方法?

共有1个答案

冀啸
2023-03-14

将此添加到WebApiConfig。cs:

config.Formatters.JsonFormatter.SerializerSettings.ContractResolver =
    new DefaultContractResolver { IgnoreSerializableAttribute = true };

这解决了标记为[Serializable]的类的问题。即使没有类具有该属性,我也会出现间歇性问题,所以我现在总是使用此设置。

 类似资料:
  • null 另外,作为API开发人员,如果我不使用它,我会失去什么?

  • 我的中有以下操作。NET核心2控制器。它是一个API,应该存储作为应用程序/x-www-form-urlencoded发布的所有数据 所以斯瓦格UI允许使用UI尝试这个动作:斯瓦格UI 但是SwaggerUI生成带有正文的POST:formData=field 1=value e1&field 2=value e2 我希望它是:field1=value1 所以问题是,这是OpenAPI的限制,还是

  • 在我的“简化”API中,所有响应都是从基本“响应”类派生(继承)的。响应类由一个填充元数据的头和一个包含用户请求的核心数据的主体组成。响应(在JSON中)的布局使得所有元数据都在第一个“层”上,而主体是一个称为“主体”的单一属性 我试图用以下JSON来定义这种关系: 然后,我尝试通过创建从body/header继承的各种body/header类来创建不同的响应,然后创建由相关的header/bod

  • 我想使用Swashuckle(swagger for. net)在WebAPI项目上进行基于API密钥的身份验证。 我已经配置了如下虚张声势: (见 https://github.com/domaindrivendev/Swashbuckle#describing-securityauthorization-schemes) 它似乎创建了我所期望的swagger文件: 但是当我进入UI并‘尝试’时

  • 我正在为我的spring boot项目使用swagger注释。 我想为控制器的每个资源返回一个公共响应代码契约。 在文件中:https://github.com/swagger-api/swagger-core/wiki/annotations#apiresponses-apiresponse他们谈论@ApiResponses,但我不能将注释放在类级别。 以下是我所做的: 但问题是和中的坏东西从未

  • 嗯,我在API文档中使用了Swagger,它在本地主机中工作得很好,当我将它托管在IIS上时,问题就开始了。对于somereason来说,它不再起作用了 本地主机: 我的控制器代码只有这个方法: