Vírgulas em URIs do WPF Pack

Os URIs do Pacote WPF usam três vírgulas consecutivas, por exemplo:

pack://application:,,,/myFolder/myPic.bmp 

A parte supostamente significa alguma coisa? É apenas um delimitador? Pode alguma coisa passar entre as vírgulas?

fundo

Um URI é composto por um esquema , autoridade e caminho 1 .
Por exemplo, pegue o URL http desta página da web:

 https://stackoverflow.com/questions/16256056/commas-in-wpf-pack-uris scheme = https:// authority = stackoverflow.com path = /questions/16256056/commas-in-wpf-pack-uris 

pack URIs

O mesmo se aplica ao URI do seu pack :

 pack://application:,,,/myFolder/myPic.bmp scheme = pack:// authority = application:,,, path = /myFolder/myPic.bmp 

O que é incomum aqui, é que a parte de autoridade consiste em uma representação codificada de outro URI . Esse outro URI se parece com isso:

 application:/// scheme = application:// authority = path = / 

Refere-se a um “pacote” – especificamente, ao pacote de arquivos de resources do aplicativo atual. Na página de documentação que você já vinculou:

O WPF suporta duas autoridades: application: /// e siteoforigin: ///. A autoridade application: /// identifica arquivos de dados de aplicativos que são conhecidos em tempo de compilation, incluindo arquivos de resources e conteúdo. A autoridade siteoforigin: /// identifica o site dos arquivos de origem.

Para ser usado como o componente de autoridade do URI do pack , ele precisa ser codificado para que suas barras não sejam interpretadas erroneamente como pertencentes ao componente de caminho do URI do pack .
A maneira que eles escolheram para codificá-lo é substituindo as barras por vírgulas.
Na mesma página de documentação:

Nota
O componente de autoridade de um URI de pacote é um URI incorporado que aponta para um pacote e deve estar em conformidade com o RFC 2396. Além disso, o caractere “/” deve ser substituído pelo caractere “,” e caracteres reservados, como “%” e ” ” deve ser escapado. Veja o OPC para detalhes.


1) Mais potencialmente uma consulta e um fragment, mas esses não são relevantes aqui.

A resposta está na página que você vinculou

  • Autoridade: application:///

e

… Além disso, o caractere “/” deve ser substituído pelo caractere “,” e os caracteres reservados, como “%” e “?” deve ser escapado. Veja o OPC para detalhes

assim

A parte supostamente significa alguma coisa?

É um substituto para ///

Pode alguma coisa passar entre as vírgulas?

Não.

Correção: O link OPC (Open Packaging) leva ao ECMA-376 e contém exemplos como
pack://http%3c,,www.openxmlformats.org,my.container/a/b/foo.xml

mas afaik que não se aplica ao WPF.