public ServiceDeploymentInfo(string virtualPath, ServiceHostFactoryBase serviceHostFactory, string serviceType) { this.VirtualPath = virtualPath; this.ServiceHostFactory = serviceHostFactory; this.ServiceType = serviceType; this.MessageHandledByRoute = false; }
public ServiceRoute(string routePrefix, ServiceHostFactoryBase serviceHostFactory, Type serviceType) : base(CheckAndCreateRouteString(routePrefix), new ServiceRouteHandler(routePrefix, serviceHostFactory, serviceType)) { if (TD.AspNetRouteIsEnabled()) { TD.AspNetRoute(routePrefix, serviceType.AssemblyQualifiedName, serviceHostFactory.GetType().AssemblyQualifiedName); } }
public ServiceRouteHandler(string baseAddress, ServiceHostFactoryBase serviceHostFactory, Type webServiceType) { this.baseAddress = string.Format(CultureInfo.CurrentCulture, "~/{0}", new object[] { baseAddress }); if (webServiceType == null) { throw FxTrace.Exception.AsError(new ArgumentNullException("webServiceType")); } if (serviceHostFactory == null) { throw FxTrace.Exception.AsError(new ArgumentNullException("serviceHostFactory")); } string assemblyQualifiedName = webServiceType.AssemblyQualifiedName; AddServiceInfo(this.baseAddress, new ServiceDeploymentInfo(this.baseAddress, serviceHostFactory, assemblyQualifiedName)); }
public DynamicServiceRoute(string pathPrefix, object defaults, string[] namespaces, ServiceHostFactoryBase serviceHostFactory, Type serviceType) { if (pathPrefix.IndexOf("{*", StringComparison.Ordinal) >= 0) throw new ArgumentException("Path prefix can not include catch-all route parameters.", "pathPrefix"); if (!pathPrefix.EndsWith("/")) pathPrefix += "/"; pathPrefix += "{*servicePath}"; virtualPath = serviceType.FullName + "-" + Guid.NewGuid().ToString() + "/"; innerServiceRoute = new ServiceRoute(virtualPath, serviceHostFactory, serviceType); innerRoute = new Route(pathPrefix, new RouteValueDictionary(defaults), this) { DataTokens = new RouteValueDictionary() }; if ((namespaces != null) && (namespaces.Length > 0)) { innerRoute.DataTokens["Namespaces"] = namespaces; } }