微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C# ASP.NET Web Api XML 元素重命名数据注释不起作用

如何解决C# ASP.NET Web Api XML 元素重命名数据注释不起作用

我使用的是 ASP.Net,而不是 DotNetCore。

我想要实现的是构建一个结构良好的 API,该 API 将使用数据注释返回具有相同命名结构的结果(Json 和 XML)。

我已经阅读了多个论坛,说明您可以使用 [XmlElement(ElementName = "xmlId")] 注释来实现所需的结果。

然而,这似乎不适用于 XML 结果集。

我有以下课程

[XmlRoot(ElementName="Result")]
public class Resultviewmodel
{
    [XmlElement(ElementName = "xmlId")]
    [JsonProperty(PropertyName = "jsonId")]
    public int Id { get; set; }

    [XmlElement(ElementName = "xmlMessage")]
    [JsonProperty(PropertyName = "jsonMessage")]
    public string Message { get; set; }
}

和以下 API 端点

 [RoutePrefix("api/values")]
public class ValuesController : ApiController
{
    [HttpGet,Route("Get")]
    public IHttpActionResult Get()
    {
        var result = new Resultviewmodel { Id = 1,Message = "Success" };
        return Content(HttpStatusCode.OK,result);
    }
}

json 结果返回具有 JsonProperty 注释指定的正确名称的对象。但是 XML 没有。

我正在使用邮递员测试端点并添加 Accept 标头以返回 Json 或 XML。

我错过了什么?

以下是我从邮递员那里得到的 Json 和 XML 响应。

xml postman response

json postman response

如果 DotNetCore web Api 处理得更好,我也愿意切换。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。