Freigeben über


PackUriHelper.ResolvePartUri(Uri, Uri) Methode

Definition

Gibt einen Part-URI zurück, wenn ein Quellpart-URI und ein URI mit einem relativen Pfad zu einem Zielpart angegeben wurden.

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

Parameter

sourcePartUri
Uri

Der URI des Quellparts, oder "/", um den Package-Stamm zu kennzeichnen.

targetUri
Uri

Der relative URI zum Zielpart.

Gibt zurück

Uri

Der URI des Zielparts, der zwischen dem angegebenen SourcePartUri-Parameter und dem angegebenen targetUri-Parameter aufgelöst wird.

Ausnahmen

sourcePartUri oder targetUri ist null.

sourcePartUri ist kein gültiger Part-URI.

- oder -

targetUri ist kein gültiger relativer URI.

Beispiele

Im folgenden Beispiel wird die Verwendung der ResolvePartUri-Methode gezeigt.

// 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.

Hinweise

In der folgenden Tabelle werden Beispielfälle für ResolvePartUriveranschaulicht.

sourcePartUri targetUri Zurückgegebener URI
/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

Gilt für:

Weitere Informationen