2

WCF REST(およびWCF WebApi)はどのようにしてURIを正しいサービスエンドポイントにマップしますか?

WCF WebApiプレビュー4のコンテキスト内で、カスタム委任チャネル内で、着信HttpRequestMessage.RequestUriに基づいて関連するルートプレフィックスまたはサービスタイプを検索したいと思います。

たとえば、

RouteTable.Routes.MapServiceRoute<ManagersResource>("employees/managers", config);
RouteTable.Routes.MapServiceRoute<EmployeesResource>("employees", config);

http:// server / employees/Johnのリクエストが届いたとします

  1. WCFはこれをどのように正しいエンドポイントにマッピングしますか?

がインスタンス化されるまでResourceFactoryProviderに、具体的なサービスタイプはすでにわかっています。URIとルーティングテーブルルートの間で解決が行われる場所を追跡できないようです。

よろしくお願いします。

4

1 に答える 1

6

を使用することによりMapServiceRoute<TService>、コードは実際にServiceHostFactoryASP.NETルーティングテーブルにを登録しています。したがって、最初に、要求はASP.NETに到着し、それがサービスEmployeesResource(URLをマップできる唯一のルート)に送信します。その時点で、WCF Web APIサービスホスト(HttpConfigurableServiceHost)は、を使用しUriTemplateTableてリクエストを適切な操作にディスパッチします。以下のコードのようなものがある場合、それが呼び出される操作です。

[WebGet(UriTemplate = "/{employeeName}")]
public Employee Get(string employeeName);
于 2011-06-22T23:51:57.920 に答える