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 (将#修改为@)