階層リソースを含むRESTfulWebサービスがあります。これらのリソースを、グローバルルーティングクラス(global.asax)によってマップされたさまざまなサービスクラスに分けたいと思います。たとえば、次のようなリソース階層がある場合:
Book/
Book/{BookID}/Chapters/
Book/{BookID}/Chapters/{ChapterID}/
etc...
このように1つのクラスにしかマップできませんでした:
RouteTable.Routes.Add(new ServiceRoute("Books/", new WebServiceHostFactory()
, typeof(BookService)));
これは機能しますが、その単一のサービスにすべてのメソッドを実装する必要があります。BookService、ChapterServiceなどの複数のサービスクラスが必要です...次のようになります。
RouteTable.Routes.Add(new ServiceRoute("Books/", new WebServiceHostFactory()
, typeof(BookService)));
RouteTable.Routes.Add(new ServiceRoute("Books/{BookID}/Chapters/"
, new WebServiceHostFactory(), typeof(ChapterService)));
しかし、それは機能しません...それで、今、私はすべてのメソッドを単一のサービスで定義することを余儀なくされています。それを回避する方法はありますか、それともこの単一の巨大なサービスクラスを使用する運命にありますか?