WPF 中的 Pack URI地(资源文件加载)

2020-12-13 14:37

阅读:613

Pack URI 方案由 Open Packaging Conventions(开放式打包约定,OPC)规范使用,该规范描述用于组织和标识内容的模型。 此模型的关键元素是程序包和部件,其中,“程序包”是一个或多个逻辑“部件”的逻辑容器。 下图阐释了此概念。

soscw.com,搜素材

为了标识部件,OPC 规范利用 RFC 2396(统一资源标识符 (URI):一般语法)的扩展性来定义 pack URI 方案。

URI 所指定的方案由其前缀定义;http、ftp 和 file 是众所周知的示例。 Pack URI 方案使用“pack”作为它的方案,并且包含两个组件:授权和路径。 以下是 pack URI 的格式。

pack://授权/路径

授权 指定包含部件的程序包的类型,而路径 则指定部件在程序包中的位置。

下图阐释了此概念:

soscw.com,搜素材

程序包和部件之间的关系类似于应用程序和文件之间的关系,其中,应用程序(程序包)可以包含一个或多个文件(部件),包括:

  • 编译到本地程序集中的资源文件。

  • 编译到所引用的程序集中的资源文件。

  • 编译到进行引用的程序集中的资源文件。

  • 内容文件。

  • 源站点文件。

为了访问这些类型的文件,WPF 支持两种授权:application:/// 和 siteoforigin:///。 Application:/// 授权标识在编译时已知的应用程序数据文件,包括资源文件和内容文件。 Siteoforigin:/// 授权标识源站点文件。下图显示了每种授权的范围。

soscw.com,搜素材
soscw.com,搜素材 说明

Pack URI 的授权组件是一个嵌入式 URI,它指向程序包并且必须符合 RFC 2396。 另外,必须用字符“,”替换字符“/”,并且必须对保留字符(如“%”和“?”)进行转义。 有关详细信息,请参见 OPC。

以下各节解释如何将这两种授权与用于标识资源、内容和源站点文件的相应路径结合起来,以便构造 pack URI。


评论


亲,登录后才可以留言!