我有一个包含分层资源的RESTful Web服务。我想在全局路由类(global.asax)映射的不同服务类中分离这些资源。举例来说,如果我有一个这样的资源层次:使用分层资源在WCF REST中路由
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?它更适合于REST风格的Web服务,因为它主要针对这一点。 – Martin1921 2012-07-30 13:02:35
这可能是我必须要做的......谢谢你的答案! – 2012-07-30 13:32:01
我不认为你必须这样做,但这是我建议你做的。 :)你是否试图扭转路线,首先增加更深的路线? – Martin1921 2012-07-30 13:59:21