1

現在、ルートテーブルにこのようなものがあります。WCF Web API従来のバージョン管理または従来のバージョン管理を処理するためのより良い方法はありWCFますか?

RouteTable.Routes.MapServiceRoute<Service1>("1.0/Route1", Config1);
RouteTable.Routes.MapServiceRoute<Service2>("1.0/Route2", Config2);
RouteTable.Routes.MapServiceRoute<Service3>("1.0/Route3", Config3);
RouteTable.Routes.MapServiceRoute<Service4>("1.0/Route4", Config4);
4

1 に答える 1

0

あなたはそれを行うことができますが、それは非常にプロトコルに縛られています、この場合はHTTPです。プロトコルをあまり気にせずにそれを行う方法があるのだろうか?理想的には、それを1回だけ実行し、そこにある各トランスポートに対しては実行したくないのです。幸いなことに方法があります、説明させてください。

結局のところ、WCFの内部はプロトコルに依存しないはずです。つまり、サービスでメソッドが呼び出されるときは、REST、TCP、HTTP、または名前付きパイプのいずれでメソッドが呼び出されたかを気にする必要はありません。

WCFでは、これは非常に簡単で、バージョン管理も簡単です。バージョン管理を使用すると、特にWCFとは関係がない場合に、.NETインターフェイスのバージョン管理について多くを学ぶことができます。アイデアは、サービスが次のことを実現する必要があるということです。

interface ISomething1 { ... }

後で新しい方法や変更が必要になったときは、次のことを行う必要があります。

interface ISomething2 : ISomething1 { void SomethingNew (...) }

次に、構成内に2つのエンドポイントを使用してサービスを公開するのは簡単です。1つはISomething1を指し、もう1つはISomething2を指します。

于 2011-06-18T23:50:50.513 に答える