【问题标题】:Web API Help Page for method with Enum parameters带有 Enum 参数的方法的 Web API 帮助页面
【发布时间】:2013-12-21 06:46:23
【问题描述】:

我正在使用 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.

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 这对我有用 - 我正在为 Web API 运行最新的 nuget
    • 也解决了我的问题。描述没有显示给我 b/c 他们键入的名称不匹配(+ 与 .)。谢谢!
    【解决方案2】:

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

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

    【讨论】:

    • RC(候选发布版)已于今天发布。您可以尝试升级您的 nuget 包,看看您的问题是否已解决。
    • 还没有工作。我将所有 AspNet 包更新为可用版本 4.0.30506.0。
    • 您在尝试更新软件包时是否选择了“预发布”?
    • 我会等到稳定版。
    猜你喜欢
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多