WebServiceHostFactory 实现多个Service共存的简单方式.

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));
                }
            }

 

欢迎大家一起思考,怎样能更好的处理这种情况。

posted @ 2011-11-18 10:51  darjuan  阅读(1488)  评论(2编辑  收藏  举报