WPF 中的 Pack URI地(资源文件加载)
2020-12-13 14:37
Pack URI 方案由 Open Packaging Conventions(开放式打包约定,OPC)规范使用,该规范描述用于组织和标识内容的模型。 此模型的关键元素是程序包和部件,其中,“程序包”是一个或多个逻辑“部件”的逻辑容器。 下图阐释了此概念。
为了标识部件,OPC 规范利用 RFC 2396(统一资源标识符 (URI):一般语法)的扩展性来定义 pack URI 方案。
URI 所指定的方案由其前缀定义;http、ftp 和 file 是众所周知的示例。 Pack URI 方案使用“pack”作为它的方案,并且包含两个组件:授权和路径。 以下是 pack URI 的格式。
pack://授权/路径
授权 指定包含部件的程序包的类型,而路径 则指定部件在程序包中的位置。
下图阐释了此概念:
程序包和部件之间的关系类似于应用程序和文件之间的关系,其中,应用程序(程序包)可以包含一个或多个文件(部件),包括:
-
编译到本地程序集中的资源文件。
-
编译到所引用的程序集中的资源文件。
-
编译到进行引用的程序集中的资源文件。
-
内容文件。
-
源站点文件。
为了访问这些类型的文件,WPF 支持两种授权:application:/// 和 siteoforigin:///。 Application:/// 授权标识在编译时已知的应用程序数据文件,包括资源文件和内容文件。 Siteoforigin:/// 授权标识源站点文件。下图显示了每种授权的范围。
说明 |
---|
Pack URI 的授权组件是一个嵌入式 URI,它指向程序包并且必须符合 RFC 2396。 另外,必须用字符“,”替换字符“/”,并且必须对保留字符(如“%”和“?”)进行转义。 有关详细信息,请参见 OPC。 |
以下各节解释如何将这两种授权与用于标识资源、内容和源站点文件的相应路径结合起来,以便构造 pack URI。