【发布时间】:2012-07-28 03:25:14
【问题描述】:
我有一个包含分层资源的 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)));
但它不起作用......所以现在我不得不将我的所有方法都定义在一个服务中。有没有办法解决这个问题,或者我注定要使用这个庞大的服务类?
【问题讨论】:
-
是否考虑过切换到 ASP.NET MVC4 Web API?它更适合 RESTful Web 服务,因为它主要针对此。
-
这可能是我必须要做的......谢谢你的回答!
-
我认为您不必这样做,但我建议您这样做。 :) 您是否尝试过反转路线,先添加更深的路线?