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
|
Package, classe
Représente un conteneur pouvant stocker plusieurs objets de données.
Assembly : WindowsBase (dans WindowsBase.dll)
Le type Package expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
Package(FileAccess) | Initialise une nouvelle instance de la classe Package qui utilise un FileAccess donné. |
|
Package(FileAccess, Boolean) | Initialise une nouvelle instance de la classe Package qui utilise un FileAccess et une option de diffusion donnés. |
| Nom | Description | |
|---|---|---|
|
FileOpenAccess | Obtient le paramètre d'accès au fichier pour le package. |
|
PackageProperties | Obtient les propriétés principales du package. |
| Nom | Description | |
|---|---|---|
|
Close | Enregistre et ferme le package ainsi que tout flux sous-jacent des composants. |
|
CreatePart(Uri, String) | Crée un nouveau composant non compressé avec un URI et un type de contenu donnés. |
|
CreatePart(Uri, String, CompressionOption) | Crée un nouveau composant avec un URI, un type de contenu et une option de compression donnés. |
|
CreatePartCore | En cas de substitution dans une classe dérivée, crée un nouveau composant dans le package. |
|
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. |
|
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. |
|
DeletePart | Supprime du package un composant avec un URI donné. |
|
DeletePartCore | En cas de substitution dans une classe dérivée, supprime un composant avec un URI donné. |
|
DeleteRelationship | Supprime une relation au niveau du package. |
|
Dispose | Vide et enregistre le contenu de tous les composants et relations, ferme le package et libère toutes les ressources. |
|
Equals(Object) | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) |
|
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.) |
|
Flush | Enregistre le contenu de tous les composants et relations contenus dans le package. |
|
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. |
|
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) |
|
GetPart | Retourne le composant avec un URI donné. |
|
GetPartCore | En cas de substitution dans une classe dérivée, retourne le composant adressé par un URI donné. |
|
GetParts | Retourne une collection de tous les composants dans le package. |
|
GetPartsCore | Lors d'une substitution dans une classe dérivée, retourne un tableau contenant tous les composants dans le package. |
|
GetRelationship | Retourne la relation au niveau du package avec un identificateur donné. |
|
GetRelationships | Retourne une collection de toutes les relations au niveau du package. |
|
GetRelationshipsByType | Retourne une collection de toutes les relations au niveau du package correspondant à un RelationshipType donné. |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
Open(Stream) | Ouvre un package sur un flux de données E/S donné. |
|
Open(String) | Ouvre un package à un chemin d'accès et nom de fichier donnés. |
|
Open(Stream, FileMode) | Ouvre un package avec un flux de données E/S et un mode de fichier donnés. |
|
Open(String, FileMode) | Ouvre un package à un chemin d'accès donné au moyen d'un mode de fichier donné. |
|
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. |
|
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. |
|
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. |
|
PartExists | Indique si un composant avec un URI donné est dans le package. |
|
RelationshipExists | Indique si une relation au niveau du package avec un ID donné est contenue dans le package. |
|
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
| Nom | Description | |
|---|---|---|
|
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é. |
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()
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.