Package.GetRelationshipsByType(String) 方法

定義

傳回符合特定 RelationshipType 的所有套件層級關係的集合。Returns a collection of all the package-level relationships that match a given RelationshipType.

public:
 System::IO::Packaging::PackageRelationshipCollection ^ GetRelationshipsByType(System::String ^ relationshipType);
public System.IO.Packaging.PackageRelationshipCollection GetRelationshipsByType (string relationshipType);
member this.GetRelationshipsByType : string -> System.IO.Packaging.PackageRelationshipCollection
Public Function GetRelationshipsByType (relationshipType As String) As PackageRelationshipCollection

參數

relationshipType
String

要進行比對並傳回集合的 RelationshipTypeThe RelationshipType to match and return in the collection.

傳回

PackageRelationshipCollection

符合指定之 relationshipType 的套件層級關係的集合。A collection of package-level relationships that match the specified relationshipType.

例外狀況

relationshipTypenullrelationshipType is null.

relationshipType 為空字串。relationshipType is an empty string.

套件沒有開啟 (已呼叫 Dispose(Boolean)Close())。The package is not open (Dispose(Boolean) or Close() has been called).

封裝是唯寫的。The package is write-only.

範例

下列範例示範如何取出已針對封裝定義的關聯性。The following example shows how to retrieve the relationships that have been defined for the package. 如需完整範例,請參閱 讀取封裝範例For the complete sample, see Reading a Package Sample.

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

備註

GetRelationships 永遠不會 null 傳回; 不過,如果沒有符合指定之的封裝層級關聯性,傳回的集合可能包含零個元素 relationshipTypeGetRelationships will never return null; however the returned collection may contain zero elements if there are no package-level relationships that match the specified relationshipType.

下表顯示開放封裝慣例所定義的封裝層級 relationshipType uri (OPC) 規格。The following table shows the package-level relationshipType URIs defined by the Open Packaging Conventions (OPC) specification.

封裝層級關聯性Package-level Relationship 關聯性類型 URIRelationship Type URI
核心屬性Core Properties http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
數位簽章Digital Signature http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
數位簽章憑證Digital Signature Certificate http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
數位簽章來源Digital Signature Origin http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
縮圖Thumbnail http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

如需詳細資訊,請參閱開放封裝慣例 (OPC) 規格可從下載到 https://go.microsoft.com/fwlink/?LinkID=71255For additional information, see the Open Packaging Conventions (OPC) specification available for download at https://go.microsoft.com/fwlink/?LinkID=71255.

適用於

另請參閱