我有一个包含分层资源的 RESTful Web 服务。我想将这些资源分离到由全局路由类(global.asax)映射的不同服务类中。例如,如果我有这样的资源层次结构:
Book/
Book/{BookID}/Chapters/
Book/{BookID}/Chapters/{ChapterID}/
etc...
我只能像这样映射到一个类:
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)));
但它不起作用......所以现在我被迫将我的所有方法都定义在一个服务中。有没有办法解决这个问题,或者我注定要使用这个单一的巨大服务类?