次の方法で共有


PackageStore クラス

定義

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

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. PackWebRequestを介して PackagePart データにアクセスする。

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

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

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

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

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

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

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

メソッド

AddPackage(Uri, Package)

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

GetPackage(Uri)

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

RemovePackage(Uri)

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

適用対象

こちらもご覧ください