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

  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 包,无需单独调用 AddPackageRemovePackage

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

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

方法

AddPackage(Uri, Package)

Package 添加到存储区。

GetPackage(Uri)

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

RemovePackage(Uri)

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

适用于

另请参阅