2017-01-28 6 views
5

я украшенных действие следующим образомобъект не является примитивным для моделей Ответное сообщение

[SwaggerResponse(HttpStatusCode.OK, "List of customers", typeof(List<CustomerDto>))] 
[SwaggerResponse(HttpStatusCode.NotFound, Type = typeof(NotFoundException))] 

OK модель показана правильно.

Однако, при сообщениях Repsonse, я получаю «Объект не примитив» для NotFound. Обычай исключение происходит из Exception, реализует ISerializable, а также имеет [Serializable] и [DataContract()]

Как я могу показать фактический тип данных вместо этого сообщения?

Также, если я использую WebApi, если я украшаю все действия такими атрибутами, могу ли я получить удар производительности?

ответ

-1

Как о чем-то вроде:

[SwaggerResponse(HttpStatusCode.OK, "List of customers", typeof(IEnumerable<int>))] 
    [SwaggerResponse(HttpStatusCode.BadRequest, Type = typeof(BadRequestErrorMessageResult))] 
    [SwaggerResponse(HttpStatusCode.NotFound, Type = typeof(NotFoundResult))] 
    public IHttpActionResult GetById(int id) 
    { 
     if (id > 0) 
      return Ok(new int[] { 1, 2 }); 
     else if (id == 0) 
      return NotFound(); 
     else 
      return BadRequest("id must be greater than 0"); 
    } 

http://swashbuckletest.azurewebsites.net/swagger/ui/index#!/IHttpActionResult/IHttpActionResult_GetById