PackUriHelper.ResolvePartUri(Uri, Uri) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un URI de parte de paquete, dados un URI de parte de origen y un URI con una ruta de acceso relativa a una parte de paquete de destino.
public:
static Uri ^ ResolvePartUri(Uri ^ sourcePartUri, Uri ^ targetUri);
public static Uri ResolvePartUri (Uri sourcePartUri, Uri targetUri);
static member ResolvePartUri : Uri * Uri -> Uri
Public Shared Function ResolvePartUri (sourcePartUri As Uri, targetUri As Uri) As Uri
Parámetros
- targetUri
- Uri
URI relativo a la parte de destino.
Devoluciones
El URI de la parte de destino resuelto entre los parámetros SourcePartUri
y targetUri
especificados.
Excepciones
sourcePartUri
o targetUri
es null
.
sourcePartUri
no es un URI válido de parte de paquete.
o bien
targetUri
no es un URI relativo válido.
Ejemplos
En el siguiente ejemplo, se muestra cómo utilizar el método ResolvePartUri.
// Open the Package.
// ('using' statement insures that 'package' is
// closed and disposed when it goes out of scope.)
using (Package package =
Package.Open(packagePath, FileMode.Open, FileAccess.Read))
{
PackagePart documentPart = null;
PackagePart resourcePart = null;
// Get the Package Relationships and look for
// the Document part based on the RelationshipType
Uri uriDocumentTarget = null;
foreach (PackageRelationship relationship in
package.GetRelationshipsByType(PackageRelationshipType))
{
// Resolve the Relationship Target Uri
// so the Document Part can be retrieved.
uriDocumentTarget = PackUriHelper.ResolvePartUri(
new Uri("/", UriKind.Relative), relationship.TargetUri);
// Open the Document Part, write the contents to a file.
documentPart = package.GetPart(uriDocumentTarget);
ExtractPart(documentPart, targetDirectory);
}
// Get the Document part's Relationships,
// and look for required resources.
Uri uriResourceTarget = null;
foreach (PackageRelationship relationship in
documentPart.GetRelationshipsByType(
ResourceRelationshipType))
{
// Resolve the Relationship Target Uri
// so the Resource Part can be retrieved.
uriResourceTarget = PackUriHelper.ResolvePartUri(
documentPart.Uri, relationship.TargetUri);
// Open the Resource Part and write the contents to a file.
resourcePart = package.GetPart(uriResourceTarget);
ExtractPart(resourcePart, targetDirectory);
}
}// end:using(Package package) - Close & dispose package.
' Open the Package.
' ('using' statement insures that 'package' is
' closed and disposed when it goes out of scope.)
Using package As Package = Package.Open(packagePath, FileMode.Open, FileAccess.Read)
Dim documentPart As PackagePart = Nothing
Dim resourcePart As PackagePart = Nothing
' Get the Package Relationships and look for
' the Document part based on the RelationshipType
Dim uriDocumentTarget As Uri = Nothing
For Each relationship As PackageRelationship In package.GetRelationshipsByType(PackageRelationshipType)
' Resolve the Relationship Target Uri
' so the Document Part can be retrieved.
uriDocumentTarget = PackUriHelper.ResolvePartUri(New Uri("/", UriKind.Relative), relationship.TargetUri)
' Open the Document Part, write the contents to a file.
documentPart = package.GetPart(uriDocumentTarget)
ExtractPart(documentPart, targetDirectory)
Next relationship
' Get the Document part's Relationships,
' and look for required resources.
Dim uriResourceTarget As Uri = Nothing
For Each relationship As PackageRelationship In documentPart.GetRelationshipsByType(ResourceRelationshipType)
' Resolve the Relationship Target Uri
' so the Resource Part can be retrieved.
uriResourceTarget = PackUriHelper.ResolvePartUri(documentPart.Uri, relationship.TargetUri)
' Open the Resource Part and write the contents to a file.
resourcePart = package.GetPart(uriResourceTarget)
ExtractPart(resourcePart, targetDirectory)
Next relationship
End Using ' end:using(Package package) - Close & dispose package.
Comentarios
En la tabla siguiente se muestran los casos de ejemplo de ResolvePartUri.
sourcePartUri |
targetUri |
URI devuelto |
---|---|---|
/mydoc/markup/page.xml | picture.jpg | /mydoc/markup/picture.jpg |
/mydoc/markup/page.xml | images/picture.jpg | /mydoc/markup/images/picture.jpg |
/mydoc/markup/page.xml | ./picture.jpg | /mydoc/markup/picture.jpg |
/mydoc/markup/page.xml | .. /picture.jpg | /mydoc/picture.jpg |
/mydoc/markup/page.xml | .. /images/picture.jpg | /mydoc/images/picture.jpg |
/ | images/picture.jpg | /images/picture.jpg |