public override Uri ResolveUri(Uri baseUri, string relativeUri) { var uri = new Uri(relativeUri, UriKind.RelativeOrAbsolute); if (uri.Scheme == MAP_SCHEME) { if (uri.Host == TYPE_HOST) { var typeName = Uri.UnescapeDataString(uri.Segments[1]); var type = Type.GetType(typeName, true); string sourceXsltFilePath; if (type.TryResolveCustomXsltPath(out sourceXsltFilePath)) { relativeUri = sourceXsltFilePath; } } else if (uri.Host == RESOURCE_HOST) { var resourceName = uri.Segments[1]; string sourceXsltFilePath; if (ReferenceType.TryResolveEmbeddedXsltResourceSourceFilePath(resourceName, out sourceXsltFilePath)) { relativeUri = sourceXsltFilePath; } } } return(base.ResolveUri(baseUri, relativeUri)); }