具有Enum参数的方法的Web API帮助页面

时间:2013-08-29 12:45:15

标签: c# asp.net-mvc-4 enums asp.net-web-api asp.net-web-api-helppages

我正在使用Web API帮助页面生成器生成我的API文档。但问题是帮助页面生成器无法为具有Enum参数的方法生成文档。对象和动态类型的参数也会出现这种情况。

这是我的方法:

public HttpResponseMessage Get(Status status, DateTime? date = null)
{
    ...
}

enum Status
{
    Avaliable,
    Busy,
    Canceled,
    Failed,
    Sent
}

这是生成文档:

GET api/StatusCheck?date={date}

但正确的形式是:

GET api/StatusCheck?status={status}&date={date}

当我转到API模型文档时,参数就在那里,但没有描述。

就是这样:

GET api/StatusCheck?date={date}

Unavaliable.

Request
Parameters

Name            Description
status          Unavaliable.
date            Unavaliable.

这是帮助页面生成器中的BUG吗?如何修复页面示例?

2 个答案:

答案 0 :(得分:4)

我在我的最后遇到了类似的问题,只需通过将以下代码添加到GetTypeName(Type type)方法内的XmlDocumentationProvider.cs中即可解决。

if (type.IsEnum) { return type.FullName.Replace("+", "."); }

我的枚举都在一个大的枚举类下,问题是这个函数返回了在Xml文件中找不到的Enums + MyEnum。当然,应该寻找的值是Enums.MyEnum。

答案 1 :(得分:3)

这实际上是一个在今年4月修复的错误。以下是与此相关的问题。

http://aspnetwebstack.codeplex.com/workitem/312