Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

Package, classe

Représente un conteneur pouvant stocker plusieurs objets de données.

System.Object
  System.IO.Packaging.Package
    System.IO.Packaging.ZipPackage

Espace de noms :  System.IO.Packaging
Assembly :  WindowsBase (dans WindowsBase.dll)
public abstract class Package : IDisposable

Le type Package expose les membres suivants.

  Nom Description
Méthode protégée Package(FileAccess) Initialise une nouvelle instance de la classe Package qui utilise un FileAccess donné.
Méthode protégée Package(FileAccess, Boolean) Initialise une nouvelle instance de la classe Package qui utilise un FileAccess et une option de diffusion donnés.
Début
  Nom Description
Propriété publique FileOpenAccess Obtient le paramètre d'accès au fichier pour le package.
Propriété publique PackageProperties Obtient les propriétés principales du package.
Début
  Nom Description
Méthode publique Close Enregistre et ferme le package ainsi que tout flux sous-jacent des composants.
Méthode publique CreatePart(Uri, String) Crée un nouveau composant non compressé avec un URI et un type de contenu donnés.
Méthode publique CreatePart(Uri, String, CompressionOption) Crée un nouveau composant avec un URI, un type de contenu et une option de compression donnés.
Méthode protégée CreatePartCore En cas de substitution dans une classe dérivée, crée un nouveau composant dans le package.
Méthode publique CreateRelationship(Uri, TargetMode, String) Crée une relation au niveau du package avec un composant avec URI, mode cible et type de relation donnés.
Méthode publique CreateRelationship(Uri, TargetMode, String, String) Crée une relation au niveau du package avec un composant avec URI, mode cible, type de relation et identifier (ID) donnés.
Méthode publique DeletePart Supprime du package un composant avec un URI donné.
Méthode protégée DeletePartCore En cas de substitution dans une classe dérivée, supprime un composant avec un URI donné.
Méthode publique DeleteRelationship Supprime une relation au niveau du package.
Méthode protégée Dispose Vide et enregistre le contenu de tous les composants et relations, ferme le package et libère toutes les ressources.
Méthode publique Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique Flush Enregistre le contenu de tous les composants et relations contenus dans le package.
Méthode protégée FlushCore En cas de substitution dans une classe dérivée, enregistre le contenu de tous les composants et relations dans le magasin de classes dérivées.
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetPart Retourne le composant avec un URI donné.
Méthode protégée GetPartCore En cas de substitution dans une classe dérivée, retourne le composant adressé par un URI donné.
Méthode publique GetParts Retourne une collection de tous les composants dans le package.
Méthode protégée GetPartsCore Lors d'une substitution dans une classe dérivée, retourne un tableau contenant tous les composants dans le package.
Méthode publique GetRelationship Retourne la relation au niveau du package avec un identificateur donné.
Méthode publique GetRelationships Retourne une collection de toutes les relations au niveau du package.
Méthode publique GetRelationshipsByType Retourne une collection de toutes les relations au niveau du package correspondant à un RelationshipType donné.
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode publique Membre statique Open(Stream) Ouvre un package sur un flux de données E/S donné.
Méthode publique Membre statique Open(String) Ouvre un package à un chemin d'accès et nom de fichier donnés.
Méthode publique Membre statique Open(Stream, FileMode) Ouvre un package avec un flux de données E/S et un mode de fichier donnés.
Méthode publique Membre statique Open(String, FileMode) Ouvre un package à un chemin d'accès donné au moyen d'un mode de fichier donné.
Méthode publique Membre statique Open(Stream, FileMode, FileAccess) Ouvre un package avec un flux de données E/S, un mode de fichier et un paramètre d'accès au fichier donnés.
Méthode publique Membre statique Open(String, FileMode, FileAccess) Ouvre un package à un chemin d'accès donné à l'aide d'un mode de fichier et d'un paramètre d'accès au fichier donnés.
Méthode publique Membre statique Open(String, FileMode, FileAccess, FileShare) Ouvre un package à un chemin d'accès donné à l'aide d'un mode de fichier, d'un chemin d'accès et d'un paramètre de partage de fichier donnés.
Méthode publique PartExists Indique si un composant avec un URI donné est dans le package.
Méthode publique RelationshipExists Indique si une relation au niveau du package avec un ID donné est contenue dans le package.
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Début
  Nom Description
Implémentation d'interface explicite Méthode privée IDisposable.Dispose Ce membre prend en charge l'infrastructure Windows Presentation Foundation (WPF) et n'est pas conçu pour l'utilisation de l'application. Utilisez plutôt la méthode Dispose de type sécurisé.
Début

Package est une classe abstraite qui peut être utilisée pour organiser des objets dans une entité unique d'un format physique défini pour permettre la portabilité et un accès efficace.

Un fichier .zip est le format physique principal pour le Package. D'autres implémentations Package peuvent utiliser d'autres formats physiques tels qu'un document XML, une base de données ou un service Web.

Similaire à un système de fichiers, les éléments contenus dans un Package sont référencés dans une organisation hiérarchique de dossiers et fichiers.

Bien que Package lui-même soit une classe abstraite, la classe dérivée ZipPackage est utilisée par défaut par la méthode Open.

Un PackagePart (« composant ») est la classe abstraite représentant un objet stocké dans un Package.

Un PackageRelationship (« relation ») définit une association entre un Package ou PackagePart source et un objet cible. Une PackageRelationship peut être l'une de deux types, chacune pouvant se présenter sous deux formes :

  • Une relation au niveau du package (créée par la méthode Package.CreateRelationship ) lie un Package à l'une ou l'autre des cibles suivantes :

    • Un composant cible dans le package.

    • Une ressource cible à l'extérieur du package.

  • Une relation au niveau du composant (créée par la méthode PackagePart.CreateRelationship ) lie une source PackagePart à l'une ou l'autre des cibles suivantes :

    • Un autre composant cible dans le package.

    • Une ressource cible à l'extérieur du package.

La source Package ou PackagePart de la relation est considérée « propriétaire » de la relation. Lorsque l'objet source est supprimé, toutes les relations lui appartenant sont également supprimées. Le processus de création ou de suppression d'une relation ne change en aucune façon physiquement la source ou les objets cibles.

Une PackageDigitalSignature (« signature numérique ») est constituée de composants et de relations représentant une signature numérique incluse dans un Package. La signature numérique identifie l'expéditeur et vérifie que les composants et relations signés contenus dans le Package n'ont pas été modifiées.

Les packages prennent également en charge la Gestion des droits numérique (DRM) qui autorise des éléments de contenu d'un Package à être chiffrés avec des droits d'accès spécifiques accordés à des utilisateurs autorisés.

Selon l'architecture Package, un XpsDocument est un type de package conçu pour stocker des documents basés sur l'open XML Paper Specification (XPS).

Microsoft .NET Framework utilise des packages pour stocker du contenu, des ressources et des relations pour des pages et des documents qui utilisent par défaut un fichier .zip standard. Comme pour tout fichier .zip, votre application peut utiliser les classes System.IO.Packaging pour stocker et éventuellement protéger tout type ou nombre de fichiers de données dans un conteneur unique, d'accès efficace.

Pour plus d'informations, consultez la spécification de l'Open Packaging Conventions (OPC) téléchargeable à partir de http://go.microsoft.com/fwlink/?LinkID=71255.

L'exemple suivant montre les étapes de base permettant la création d'un Package. Dans cet exemple, un package est créé pour contenir un document et une image graphique affichée en tant que partie du document. (Cet exemple est semblable à celui d'un fichier HTML possédant une balise <IMG> faisant référence à un fichier image externe.) Deux éléments PackageRelationship sont également inclus dans le package. Le premier, une relation « au niveau du package », définit la partie document comme élément racine du package. Le deuxième, une relation « au niveau du composant » définit l'association entre la partie document (« source » de la relation au niveau du composant) et l'utilisation qu'elle fait de la partie image (« cible » de la relation au niveau du composant). Pour l'exemple complet, consultez Écriture dans un package, exemple (page éventuellement en anglais).


//  -------------------------- CreatePackage --------------------------
/// <summary>
///   Creates a package zip file containing specified
///   content and resource files.</summary>
private static void CreatePackage()
{
    // Convert system path and file names to Part URIs. In this example
    // Uri partUriDocument /* /Content/Document.xml */ =
    //     PackUriHelper.CreatePartUri(
    //         new Uri("Content\Document.xml", UriKind.Relative));
    // Uri partUriResource /* /Resources/Image1.jpg */ =
    //     PackUriHelper.CreatePartUri(
    //         new Uri("Resources\Image1.jpg", UriKind.Relative));
    Uri partUriDocument = PackUriHelper.CreatePartUri(
                              new Uri(documentPath, UriKind.Relative));
    Uri partUriResource = PackUriHelper.CreatePartUri(
                              new Uri(resourcePath, UriKind.Relative));

    // Create the Package
    // (If the package file already exists, FileMode.Create will
    //  automatically delete it first before creating a new one.
    //  The 'using' statement insures that 'package' is
    //  closed and disposed when it goes out of scope.)
    using (Package package =
        Package.Open(packagePath, FileMode.Create))
    {
        // Add the Document part to the Package
        PackagePart packagePartDocument =
            package.CreatePart(partUriDocument,
                           System.Net.Mime.MediaTypeNames.Text.Xml);

        // Copy the data to the Document Part
        using (FileStream fileStream = new FileStream(
               documentPath, FileMode.Open, FileAccess.Read))
        {
            CopyStream(fileStream, packagePartDocument.GetStream());
        }// end:using(fileStream) - Close and dispose fileStream.

        // Add a Package Relationship to the Document Part
        package.CreateRelationship(packagePartDocument.Uri,
                                   TargetMode.Internal,
                                   PackageRelationshipType);

        // Add a Resource Part to the Package
        PackagePart packagePartResource =
            package.CreatePart(partUriResource,
                           System.Net.Mime.MediaTypeNames.Image.Jpeg);

        // Copy the data to the Resource Part
        using (FileStream fileStream = new FileStream(
               resourcePath, FileMode.Open, FileAccess.Read))
        {
            CopyStream(fileStream, packagePartResource.GetStream());
        }// end:using(fileStream) - Close and dispose fileStream.

        // Add Relationship from the Document part to the Resource part
        packagePartDocument.CreateRelationship(
                                new Uri(@"../resources/image1.jpg",
                                UriKind.Relative),
                                TargetMode.Internal,
                                ResourceRelationshipType);

    }// end:using (Package package) - Close and dispose package.

}// end:CreatePackage()


//  --------------------------- CopyStream ---------------------------
/// <summary>
///   Copies data from a source stream to a target stream.</summary>
/// <param name="source">
///   The source stream to copy from.</param>
/// <param name="target">
///   The destination stream to copy to.</param>
private static void CopyStream(Stream source, Stream target)
{
    const int bufSize = 0x1000;
    byte[] buf = new byte[bufSize];
    int bytesRead = 0;
    while ((bytesRead = source.Read(buf, 0, bufSize)) > 0)
        target.Write(buf, 0, bytesRead);
}// end:CopyStream()


.NET Framework

Pris en charge dans : 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ