PackageStore クラス

定義

Packageと組み合わせて使用されるアプリケーション固有のPackWebRequest インスタンスのコレクションを表します。

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
継承
PackageStore
属性

注釈

PackageStoreは、アプリケーションで開いてアクティブなパッケージの参照コレクションを定義します。 PackageStoreに追加されたパッケージは、キー URI 値によってアクセスされます。 PackageStoreでは、次の 3 つの一般的な用途がサポートされています。

  1. PackagePartを介してPackWebRequestデータにアクセスする。

  2. パッケージの URI を指定して、 Package のインスタンスを取得するアプリケーション。

  3. MemoryStreamに作成および格納されているパッケージへのアクセス。

パフォーマンスを向上させ、ファイルの開き/閉じ操作を繰り返すオーバーヘッドを最小限に抑えるために、 PackageStore を使用して、 PackWebRequest およびアプリケーションから直接アクセスされるパッケージのインスタンスを管理します。 パッケージ内のデータにアクセスすると、要求されたPackagePackagePartUri アドレスが最初にチェックされ、パッケージが既に定義されていて、PackageStoreで開かれているかどうかを確認します。 パッケージが PackageStoreで開いていると定義されている場合は、要求ごとにパッケージを繰り返し開いたり閉じたりすることなく、要求されたパーツに直接アクセスできます。

アプリケーションで Package.Openを使用してパッケージを開いた場合は、 AddPackage を呼び出してパッケージを PackageStoreに追加できます。 RemovePackageは後で呼び出して、PackageStoreを呼び出す前にPackage.Closeからパッケージを削除する必要があります。

XpsDocument コンストラクターで開かれた XPS パッケージは、ドキュメントの作成時と破棄時にPackageStoreに自動的に追加および削除されます。 (AddPackage コンストラクターで開かれた XPS パッケージに対して、RemovePackageまたはXpsDocumentを個別に呼び出す必要はありません)。

PackageStoreを介してアクセスされるパッケージのファイル I/O アクセス許可は、パッケージを開いたときに設定された I/O アクセス許可と同じままです。 PackageStoreは、ストアに追加されたパッケージへの参照のみを提供します。 各パッケージを正しく開いたり、更新したり、閉じたりするのは、アプリケーションにかかっています。

PackageStoreに追加されたパッケージは、XamlReader.Loadなどの XAML パーサーと組み合わせて使用すると、マルチスレッド環境でアクセスできます。 マルチスレッド環境で動作する場合、アプリケーションはアクセスする前にパッケージをロックする必要があります。

メソッド

名前 説明
AddPackage(Uri, Package)

ストアに Package を追加します。

GetPackage(Uri)

指定した URI を持つ Package をストアから返します。

RemovePackage(Uri)

指定した URI を持つ Package をストアから削除します。

適用対象

こちらもご覧ください