2016-09-26 10 views
0

도움말 페이지에 나타나야하는 구조화 된 주석이있는 작업 메소드가있는 Web API ApiController가 있습니다.복합 유형을 사용하는 메소드에 대한 웹 API 주석?

조치는 POCO 오브젝트의 배열 인 단일 [FromBody] 인수를 취해야하는 Put입니다.

/// <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 파일에 적절한 항목이 표시되지만 도움말 페이지에 주석이 표시되지 않습니다. 나는 그 방법을 보았고, 요약 된 코멘트는 나타나지 않는다.

인수의 형식을 string으로 바꾸면 설명이 도움말 페이지에 올바르게 표시됩니다.

/// <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); 
} 

또는 오히려, 이것은 다큐 멘 테이션 코멘트 작업을합니다. 그 방법 자체는 어느 쪽이든 작동했습니다.