Compartir a través de


Package.GetRelationshipsByType(String) Método

Definición

Devuelve una colección de todas las relaciones de nivel de paquete que coincidan con una propiedad RelationshipType especificada.

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

Parámetros

relationshipType
String

RelationshipType para coincidir y devolver en la colección.

Devoluciones

Colección de relaciones de nivel de paquete que coincidan con el relationshipType especificado.

Excepciones

relationshipType es null.

relationshipType es una cadena vacía.

El paquete no está abierto (se ha llamado a Dispose(Boolean) o Close()).

El paquete es de sólo escritura.

Ejemplos

En el ejemplo siguiente se muestra cómo recuperar las relaciones que se han definido para el paquete.

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

GetRelationships nunca devolverá null; sin embargo, la colección devuelta puede contener cero elementos si no hay relaciones de nivel de paquete que coincidan con el especificado relationshipType.

En la tabla siguiente se muestran los URI de nivel relationshipType de paquete definidos por la especificación Open Packaging Conventions (OPC).

Relación de nivel de paquete URI de tipo de relación
Propiedades principales http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Firma digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Certificado de firma digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Origen de firma digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
Thumbnail http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Para obtener más información, consulte la especificación De convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Se aplica a

Consulte también