質問

私は現在、私のルートテーブルにこのようなものを持っています。バージョン化を処理するより良い方法はありますか? 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);
役に立ちましたか?

解決

あなたはそれをすることができますが、それは非常にです プロトコルバウンド, 、 この場合 http. 。プロトコルについてそれほど心配することなく、それを行う方法があるのだろうか?理想的には、私たちはそれを一度だけしたいだけでなく、そこにある各輸送のためではありません。幸いなことに、方法があります、説明させてください。

一日の終わりに、あなたのWCF内部は プロトコル不可知論者. 。つまり、メソッドがあなたのサービスに呼び出されるまでに、それが来たかどうかは気にしないでください REST、TCP、HTTP、または名前付きパイプ.

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

interface ISomething1 { ... }

後で新しい方法または変更が必要な場合は、次のことが必要です。

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

次に、構成の2つのエンドポイントを使用してサービスを公開するのは簡単なことです。 isomething1 そしてもう一方 isomething2.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top