2015-06-01 42 views
1

我努力學習的Web API,我嘗試下面的代碼和它的作品如預期,當我訪問http://localhost:50737/api/persons的Web API響應 - 添加屬性和更改的XML標記名稱

角色模型

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

人控制器

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" } }; 
    } 
} 

XML響應

<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> 

我加GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;到Global.asax中這又去掉了名字,但不是DigitID

在這裏,我需要

  1. 更改ArrayOfPerson以「人」

  2. 添加屬性保留返回人員總數的「計數」。

  3. 從XML響應

取出空元素,以便預期的XML響應將是

<Persons Count=2> 
    <Person> 
     <FirstName>My First Name 1</FirstName> 
    </Person> 
    <Person> 
     <FirstName>My First Name 2</FirstName> 
    </Person> 
</Persons> 

我如何做同樣的JSON作爲結尾,我需要支持只有JSON

回答

0

對於Q1: 使用此 - [return: MessageParameter(Name = "Persons")]作爲attribute到您的operation

對於Q3:將DigitID更改爲Int否則它會繼續響應您的回覆,因爲您將其標記爲Nullable type

相關問題