Неоднозначные имена контроллеров с атрибутами Routing: контроллеры с одинаковыми именами и другим пространством имен для управления версиями

Я пытаюсь добавить управление версиями API, и я планирую создать контроллер для каждой версии в различном пространстве имен. Моя структура проекта выглядит следующим образом (примечание: нет отдельной области для каждой версии)

Controllers
 |
 |---Version0
 |      |
 |      |----- ProjectController.cs
 |      |----- HomeController.cs
 |
 |---Version1
       |
       |----- ProjectController.cs
       |----- HomeController.cs

Я использую RoutingAttribute для маршрутов. Итак, ProjectController в Version0 имеет функцию с маршрутом как

namespace MyProject.Controllers.Version0
{
   class ProjectController : BaseController
   {
     ...

     [Route(api/users/project/getProjects/{projectId})]
     public async GetProjects(string projectId) 
     {
       ...
     }
  }
}

и ProjectController в версии 1 имеет функцию с маршрутом как

namespace MyProject.Controllers.Version1
{
   class ProjectController : BaseController
   {
     ...

     [Route(api/v1/users/project/getProjects/{projectId})]
     public async GetProjects(string projectId) 
     {
      ...
     }
  }
}

Но я получаю 404-NotFound, когда я пытаюсь попасть в сервис.

Если я переименую контроллеры в уникальные имена (Project1Controller и Project2Controller), маршрутизация работает. Но я пытаюсь избежать переименования для простоты.

Я пошел по этой ссылке, чтобы решить проблему, но это не помогло. Я действительно создал области, но все еще безуспешно. Добавление логики маршрутизации в файл global.aspx не помогает. Пространство имен тоже не работает.http://haacked.com/archive/2010/01/12/ambiguous-controller-names.aspx/

Приведенная выше ссылка предлагает создать области, но атрибут маршрутизации не поддерживает области согласно ссылке:http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2

Есть ли другое решение? Ошибка с RoutingAttributes?

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос