Exemplo n.º 1
0
        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));
        }