2016-09-26 35 views
0

我有一個Web Api ApiController,它有一個操作方法,它具有應該顯示在幫助頁面上的結構化註釋。針對採取複雜類型的方法的Web API註釋?

該操作是一個Put,它應該採用一個POBO對象數組的單個[FromBody]參數。

/// <summary> 
/// An acknowledgement (positive or negative) for a sent ticket 
/// </summary> 
public class AckNak 
{ 
    /// <summary>jobid of the ticket that was sent</summary> 
    public string jobid { get; set; } 
    /// <summary>True if the ticket was successfully received, false otherwise</summary> 
     public bool ack { get; set; } 
} 

/// <summary> 
/// Put acknowledgements (positive or negative) for tickets received 
/// </summary> 
/// <param name="ackNaks">An array of AckNak objects</param> 
[HttpPut] 
public HttpResponseMessage Put([FromBody] AckNak[] ackNaks) 
{ 
    return this.Request.CreateResponse(HttpStatusCode.OK); 
} 

通過以上所述,我在生成的XML文件中看到了相應的條目,但在幫助頁上看不到註釋。我看到方法,總結評論沒有出現。

如果我用字符串替換參數的類型,則正確顯示幫助頁面上的註釋。

/// <summary> 
/// An acknowledgement (positive or negative) for a sent ticket 
/// </summary> 
public class AckNak 
{ 
    /// <summary>jobid of the ticket that was sent</summary> 
    public string jobid { get; set; } 
    /// <summary>True if the ticket was successfully received, false otherwise</summary> 
     public bool ack { get; set; } 
} 

/// <summary> 
/// Put acknowledgements (positive or negative) for tickets received 
/// </summary> 
/// <param name="ackNaks">An array of AckNak objects</param> 
[HttpPut] 
public HttpResponseMessage Put([FromBody] string ackNaks) 
{ 
    return this.Request.CreateResponse(HttpStatusCode.OK); 
} 

想法?

+0

你爲什麼要像'AckNak [] ackNaks'那樣通過?嘗試與'AckNak ackNaks' –

+0

我通過AckNaks的集合,不只是一個。 –

回答

0

問題是嘗試傳遞數組而不是集合。

這工作:

[HttpPut] 
public HttpResponseMessage Put([FromBody] IEnumerable<AckNak> ackNaks) 
{ 
    return this.Request.CreateResponse(HttpStatusCode.OK); 
} 

或者說,這使得文檔註釋工作。該方法本身工作的方式。