WCF4.0 for ASP.NET 中路由技术的支持,让WCF脱去了.SVC的外壳.
一、笨办法
WebServiceHostFactory webServiceHostFactory = new WebServiceHostFactory(); RouteTable.Routes.Add(new ServiceRoute("Service1", webServiceHostFactory, typeof(Service1))); RouteTable.Routes.Add(new ServiceRoute("Service2", webServiceHostFactory, typeof(Service2))); ............................................................................ RouteTable.Routes.Add(new ServiceRoute("Servicen", webServiceHostFactory, typeof(Servicen)));
二、稍等好点的办法
通过反射机制来处理,其实还是有点局限,局限在于怎样识别当前Type 是一个 ServiceContract:
WebServiceHostFactory webServiceHostFactory = new WebServiceHostFactory(); var types = Assembly.Load("RESTWCF4.0").GetTypes(); foreach (var type in types) { if (type.Name.Contains("Service")) { RouteTable.Routes.Add(new ServiceRoute(type.Name, webServiceHostFactory, type)); } }
欢迎大家一起思考,怎样能更好的处理这种情况。