Package.GetPart(Uri) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert het onderdeel met een bepaalde URI.
public:
System::IO::Packaging::PackagePart ^ GetPart(Uri ^ partUri);
public System.IO.Packaging.PackagePart GetPart(Uri partUri);
member this.GetPart : Uri -> System.IO.Packaging.PackagePart
Public Function GetPart (partUri As Uri) As PackagePart
Parameters
- partUri
- Uri
De URI (Uniform Resource Identifier) van het onderdeel dat moet worden geretourneerd.
Retouren
Het deel met de opgegeven partUri.
Uitzonderingen
partUri is null.
partUri is geen geldige PackagePart URI (Uniform Resource Identifier).
Een deel met de opgegeven partUri waarde bevindt zich niet in het pakket.
Het pakket is niet geopend (Dispose(Boolean) of Close() is aangeroepen).
Het pakket is alleen-schrijven.
Voorbeelden
In het volgende voorbeeld ziet u hoe u onderdelen in een pakket kunt vinden, ophalen en lezen.
// 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.
Opmerkingen
Er InvalidOperationException wordt een gegenereerd als een deel met de opgegeven partUri niet bestaat.
De PartExists methode kan worden gebruikt om te bepalen of partUri er wordt verwezen naar een bestaand onderdeel.
Standaard wordt een ZipPackage afgeleide implementatie van de abstracte Package basisklasse geleverd en gebruikt. In de standaardbewerking GetPart worden intern aanroepen GetPartCore van de ZipPackage klasse om een aangevraagd onderdeel uit een ZIP-bestand te retourneren.
Zie de OPC-specificatie (Open Packaging Conventions) die u kunt downloaden voor https://www.ecma-international.org/publications-and-standards/standards/ecma-376/meer informatie.
Notities voor overnemers
GetPart(Uri) roept intern de afgeleide klassemethode GetPartCore(Uri) aan om het onderdeel daadwerkelijk leeg te maken op basis van de fysieke indeling die in de afgeleide klasse is geïmplementeerd.