Freigeben über


PackageStore Klasse

Definition

Stellt eine Auflistung anwendungsspezifischer Package Instanzen dar, die in Kombination mit PackWebRequestverwendet werden.

public ref class PackageStore abstract sealed
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
public static class PackageStore
public static class PackageStore
[<System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)>]
type PackageStore = class
type PackageStore = class
Public Class PackageStore
Vererbung
PackageStore
Attribute

Hinweise

Die PackageStore definiert eine Referenzauflistung von Paketen, die in der Anwendung geöffnet und aktiv sind. Auf Pakete, die dem PackageStore hinzugefügt werden, wird der Schlüssel-URI-Wert verwendet. Die PackageStore unterstützt drei häufige Verwendungen:

  1. Zugreifen auf PackagePart Daten über PackWebRequest.

  2. Die Anwendung, die eine Instanz eines Package erhält, wenn der URI des Pakets angegeben ist.

  3. Zugreifen auf Pakete, die in einem MemoryStreamerstellt und gespeichert werden.

Um die Leistung zu verbessern und den Aufwand für wiederholte Öffnen/Schließen von Dateien zu minimieren, wird die PackageStore verwendet, um Instanzen von Paketen zu verwalten, auf die von PackWebRequest und direkt von der Anwendung zugegriffen wird. Beim Zugriff auf Daten in einem Paket wird die Package Adresse eines angeforderten PackagePartUri zuerst überprüft, um festzustellen, ob das Paket bereits definiert und im PackageStoregeöffnet ist. Wenn das Paket im PackageStoreals geöffnet definiert ist, können angeforderte Teile direkt aufgerufen werden, ohne das Paket für jede Anforderung wiederholt zu öffnen und zu schließen.

Wenn Ihre Anwendung ein Paket mit Package.Openöffnet, kann AddPackage aufgerufen werden, um das Paket zum PackageStorehinzuzufügen. RemovePackage sollte später aufgerufen werden, um das Paket vor dem Aufrufen von Package.Closeaus dem PackageStore zu entfernen.

XPS-Pakete, die mit einem XpsDocument-Konstruktor geöffnet werden, werden beim Erstellen und Verwerfen des Dokuments automatisch aus dem PackageStore entfernt. (Sie müssen AddPackage oder RemovePackage nicht separat für XPS-Pakete aufrufen, die mit XpsDocument-Konstruktoren geöffnet wurden.)

Die Datei-E/A-Berechtigungen eines Pakets, auf das über die PackageStore zugegriffen wird, bleiben identisch mit den E/A-Berechtigungen, die beim Öffnen des Pakets festgelegt sind. Die PackageStore enthält nur Verweise auf die Pakete, die den Speicher hinzugefügt haben. Es liegt an der Anwendung, jedes Paket ordnungsgemäß zu öffnen, zu aktualisieren und zu schließen.

Pakete, die dem PackageStore hinzugefügt werden, können in Multithread-Umgebungen zugegriffen werden, wenn sie in Kombination mit einem XAML-Parser wie XamlReader.Loadverwendet werden. Wenn sie in einer Multithreadumgebung ausgeführt wird, muss die Anwendung das Paket vor dem Zugriff sperren.

Methoden

AddPackage(Uri, Package)

Fügt dem Store eine Package hinzu.

GetPackage(Uri)

Gibt die Package mit einem angegebenen URI aus dem Speicher zurück.

RemovePackage(Uri)

Entfernt die Package mit einem angegebenen URI aus dem Speicher.

Gilt für:

Weitere Informationen