Web API响应 - 添加属性并更改xml标记名称

时间:2015-06-01 12:27:22

标签: c# xml asp.net-web-api

我正在尝试学习Web API,我尝试了以下代码,当我访问http://localhost:50737/api/persons

时,它按预期工作

人物模型

SELECT Name, Gender, Salary, DepartmentName
FROM Employee
JOIN Department ON Employee.DepartmentId = Department.DepartmentName

人员控制器

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int? DigitID { get; set; }
}

XML响应

public class PersonController : ApiController
{
    [Route("api/persons")]
    public IList<Person> GetAllPersons()
    {
        return new List<Person>() { new Person() {FirstName = "My First Name 1" }, new Person() {FirstName = "My First Name 2" } };
    }
}

我将<ArrayOfPerson> <Person> <DigitID i:nil="true"/> <FirstName>My First Name 1</FirstName> </Person> <Person> <DigitID i:nil="true"/> <FirstName>My First Name 2</FirstName> </Person> </ArrayOfPerson> 添加到global.asax,后者又删除了LastName而不是DigitID

我需要

  1. 将ArrayOfPerson更改为“Persons”

  2. 添加一个属性“Count”,其中包含返回的总人数。

  3. 从XML响应中删除null元素

  4. 因此预期的XML响应将是

    GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;

    我如何在JSON中做同样的事情,我需要只支持JSON

1 个答案:

答案 0 :(得分:0)

第一季度的

: 将此[return: MessageParameter(Name = "Persons")]用作attribute的{​​{1}}。

第3季度的

:将operation更改为DigitID,否则它会继续显示在您的回复中,因为您将其标记为Int