PackageStore Klasse

Definition

Stellt eine Auflistung von anwendungsspezifischen Package-Instanzen dar, die gemeinsam mit PackWebRequest verwendet 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

Definiert PackageStore eine Verweisauflistung von Paketen, die in der Anwendung geöffnet und aktiv sind. Auf Pakete, die PackageStore hinzugefügt werden, wird über ihren Schlüssel-URI-Wert zugegriffen. Unterstützt PackageStore drei häufige Verwendungen:

  1. Zugreifen auf PackagePart Daten über PackWebRequest.

  2. Die Anwendung, die eine instance eines Package bestimmten URI des Pakets erhält.

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

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

Wenn Ihre Anwendung ein Paket mit Package.Openöffnet, AddPackage kann aufgerufen werden, um das Paket dem hinzuzufügen PackageStore. RemovePackage sollte später aufgerufen werden, um das Paket aus dem zu entfernen, PackageStore bevor aufgerufen Package.Closewird.

XPS-Pakete, die mit einem XpsDocument Konstruktor geöffnet werden, werden automatisch hinzugefügt und aus dem PackageStore entfernt, wenn das Dokument erstellt und verworfen wird. (Sie müssen für XPS-Pakete, die mit XpsDocument Konstruktoren geöffnet werden, nicht oder RemovePackage separat aufrufenAddPackage.)

Die Datei-E/A-Berechtigungen eines Pakets, auf das über die zugegriffen wird, PackageStore bleiben identisch mit den E/A-Berechtigungen, die für das Paket festgelegt wurden, wenn es geöffnet wird. Stellt PackageStore nur Verweise auf die Pakete bereit, die dem Speicher hinzugefügt wurden. Es liegt an der Anwendung, jedes Paket ordnungsgemäß zu öffnen, zu aktualisieren und zu schließen.

Auf Pakete, die PackageStore hinzugefügt werden, kann in Multithreadumgebungen zugegriffen werden, wenn sie in Kombination mit einem XAML-Parser wie XamlReader.Loadverwendet werden. Wenn Sie in einer Multithreadumgebung arbeiten, muss die Anwendung das Paket vor dem Zugriff sperren.

Methoden

AddPackage(Uri, Package)

Fügt dem Speicher ein Package hinzu.

GetPackage(Uri)

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

RemovePackage(Uri)

Entfernt das Package mit einem angegebenen URI aus dem Speicher.

Gilt für:

Weitere Informationen