public void Map(Type type, MethodInfo method, Routing.Route route, IContainer container) { type.ThrowIfNull("type"); method.ThrowIfNull("method"); route.ThrowIfNull("route"); container.ThrowIfNull("container"); if (!type.NamespaceStartsWith(_rootNamespace)) { return; } var pathParts = new List<string>(); string relativeNamespace = Regex.Replace(type.Namespace, String.Format(@"^{0}\.?(?<RelativeNamespace>.*)", Regex.Escape(_rootNamespace)), "${RelativeNamespace}"); pathParts.AddRange(ParseWords(relativeNamespace)); pathParts.AddRange(ParseWords(type.Name)); string relativePath = String.Join("/", pathParts); var httpRuntime = container.GetInstance<IHttpRuntime>(); route.RestrictByUrlRelativePath(relativePath, _caseSensitive ? (IRequestValueComparer)CaseSensitivePlainComparer.Instance : CaseInsensitivePlainComparer.Instance, httpRuntime); }