Mehrdeutige Controller-Namen mit Routing-Attributen: Controller mit demselben Namen und unterschiedlichem Namespace für die Versionierung

Ich versuche, eine API-Versionierung hinzuzufügen. Mein Plan ist es, für jede Version einen Controller in einem anderen Namespace zu erstellen. Meine Projektstruktur sieht so aus (Hinweis: Kein separater Bereich für jede Version)

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

Ich verwende RoutingAttribute für die Routen. ProjectController in Version0 hat also die Funktion mit route als

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

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

und ProjectController in Version1 hat die Funktion mit route als

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

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

Aber ich erhalte 404-NotFound, wenn ich versuche, auf den Dienst zuzugreifen.

Wenn ich die Controller so umbenenne, dass sie einen eindeutigen Namen haben (Project1Controller und Project2Controller), funktioniert das Routing. Aber ich versuche, der Einfachheit halber das Umbenennen zu vermeiden.

Ich bin diesem Link gefolgt, um das Problem zu beheben, aber es hat nicht geholfen. Ich habe Gebiete geschaffen, aber immer noch keinen Erfolg. Das Hinzufügen von Routing-Logik in der Datei global.aspx hilft nicht. Der Namespace funktioniert auch nicht.http: //haacked.com/archive/2010/01/12/ambiguous-controller-names.aspx

Der obige Link schlägt vor, Bereiche zu erstellen, aber das Attribut Routing unterstützt keine Bereiche gemäß Link:http: //www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-

Gibt es eine andere Lösung? Ein Fehler mit RoutingAttributes?

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage