繁体   English   中英

使用属性路由的Web API 2版本控制

[英]web api 2 versioning using attribute routing

我在使用属性路由时遇到问题,其中编译器显示错误“类型'ValuesController'已经定义了具有相同参数类型的名为'Get'的成员”。

我检查了config.MapHttpAttributeRoutes()是否在webapiConfig文件中

    // GET api/values/5
    [Route("api/values/{id}")]
    public string Get(int id)
    {
        return "value";
    }

    [Route("api/v2/values/{id}")]
    public string Get(int id)
    {
        return "value";
    }

通过阅读http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2,这样的事情应该是可能的。

您的代码是无效的C#,甚至不包括Web API。 您不能两次定义相同的函数签名。 如果将第二个Get重命名为GetNew ,或将其移至其他控制器,则它应该可以工作。

正如我所看到的,问题是您有两个具有相同名称和参数的方法,这在C#中是不允许的-如果确实必须具有相同的方法名称,则需要重载参数的数量,并且/或其类型:

public string Get(int id, int id2)

要么

public string Get(Guid id)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM