Ich habe eine ASP.NET Web API, die ich geschrieben und veröffentlicht habe. Nun, da wir da draußen sind, schauen wir uns einige Verbesserungen an, und diese Verbesserungen beinhalten Änderungen an bestimmten Aufrufen, was bedeutet, dass wir eine Version benötigen, um bestehende Clients funktionsfähig zu halten.API Versionierung in ASP.NET Web API
Ich habe Attribut-Routing bisher in meiner App verwendet. Methoden werden aufgerufen von: Controller/Action über RoutePrefix und Route-Attribute.
Wenn ich eine V2 meiner Klassen erstellen muss, möchte ich nur die tatsächlich geänderten Klassen neu erstellen und andere Routen zurück in v1-Klassen umleiten, da sie nicht geändert wurden. (Sonst habe ich nur eine Menge Code oder doppelten Code).
Was ich will, ist, tun die folgenden Routen für meine Version v1 von Klassen arbeiten: Controller/Aktion
Für V2 Ich möchte keine neuen Klassen V2 gehen, und alle Klassen, die sich nicht verändert haben Ich möchte den HttpControllerDescriptor von V1-Klasse zurückgeben. Die Route würde wie v2/Controller/Action aussehen, würde aber zu Controller/Action umgeleitet werden.
Ich habe eine IHttpControllerSelector implementiert und die entsprechenden HttpControllerDescriptors zurückgeben, aber es nicht den Aufruf in die Methode. Ich glaube, weil die Routing-Informationen nicht mit der Aktion übereinstimmen. (Wenn ich einen IHttpActionSelector einfüge und die Ausnahme nachspüre, heißt es, "mehrere Aktionen wurden gefunden, die der Anfrage entsprechen).
Also ich denke ich frage mich: Ist das überhaupt möglich? Ist das der beste Weg? zu erreichen, was ich versuche zu tun?
Dies könnte Ihnen helfen: http: //www.culbertsonexchange.com/wp/? P = 318.Wenn Sie das erreichen wollen, was Sie in Ihrer Frage erwähnt haben, müssen Sie Ihre eigene Logik für das Attribut-Routing implementieren. –