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 三种常见用途:

  1. PackagePart通过 PackWebRequest访问数据。

  2. 获取给定包 URI 的 Package 实例的应用程序。

  3. 访问在 中创建和存储的 MemoryStream包。

为了提高性能并最大程度地减少重复的文件打开/关闭操作的开销, PackageStore 使用 来管理应用程序直接访问 PackWebRequest 的包实例。 访问包中的数据时, Package 首先检查请求 PackagePartUri 的地址,以查看包是否已定义并在 中 PackageStore打开。 如果包在 中 PackageStore定义为打开,则可以直接访问请求的部分,而无需为每个请求重复打开和关闭包。

如果应用程序使用 Package.Open打开包,AddPackage则可以调用 以将包添加到 。PackageStore RemovePackage稍后应调用 以在调用 Package.Close之前从 PackageStore 中删除包。

创建和释放文档时,使用 XpsDocument 构造函数打开的 XPS 包会自动添加和删除 PackageStore 。 (对于使用 XpsDocument constructors.) 打开的 XPS 包,无需单独调用 AddPackageRemovePackage

通过 PackageStore 访问的包的文件 I/O 权限与打开包时在包上设置的 I/O 权限相同。 PackageStore仅提供对已添加存储的包的引用。 应用程序应正确打开、更新和关闭每个包。

当添加到 的 PackageStore 包与 XAML 分析程序(如 ) XamlReader.Load结合使用时,可以在多线程环境中访问它们。 在多线程环境中运行时,应用程序必须在访问之前锁定包。

方法

AddPackage(Uri, Package)

Package 添加到存储区。

GetPackage(Uri)

从存储区中返回具有指定 URI 的 Package

RemovePackage(Uri)

从存储区中删除具有指定 URI 的 Package

适用于

另请参阅