WPF Pack URIでは、次のように 3 つの連続するコンマを使用します。
pack://application:,,,/myFolder/myPic.bmp
その,,,
部分は何かを意味するはずですか?区切り文字だけですか?カンマの間に何か入ることはできますか?
WPF Pack URIでは、次のように 3 つの連続するコンマを使用します。
pack://application:,,,/myFolder/myPic.bmp
その,,,
部分は何かを意味するはずですか?区切り文字だけですか?カンマの間に何か入ることはできますか?
URIは、スキーム、オーソリティ、およびパス1で構成されます。
たとえば、http
次の Web ページの URL を使用します。
https://stackoverflow.com/questions/16256056/commas-in-wpf-pack-uris
scheme = https://
authority = stackoverflow.com
path = /questions/16256056/commas-in-wpf-pack-uris
pack
URIpack
同じことがURIにも当てはまります。
pack://application:,,,/myFolder/myPic.bmp
scheme = pack://
authority = application:,,,
path = /myFolder/myPic.bmp
ここで珍しいのは、機関部分が別の URIのエンコードされた表現で構成されていることです。他の URI は次のようになります。
application:///
scheme = application://
authority =
path = /
これは「パッケージ」を指します。具体的には、現在のアプリケーションのリソース ファイルのパッケージを指します。すでにリンクしたドキュメントページから:
WPF は、application:/// と siteoforigin:/// の 2 つの機関をサポートしています。application:/// オーソリティは、リソース ファイルやコンテンツ ファイルなど、コンパイル時に認識されるアプリケーション データ ファイルを識別します。siteoforigin:/// オーソリティは、起点ファイルのサイトを識別します。
URI の機関コンポーネントとして使用するには、スラッシュが URI のパスコンポーネントにpack
属すると誤解されないようにエンコードする必要があります。
彼らがそれをエンコードするために選択した方法は、スラッシュをコンマに置き換えることです.
同じドキュメントページから:pack
注
パック URI の機関コンポーネントは、パッケージを指す埋め込み URI であり、RFC 2396 に準拠する必要があります。さらに、「/」文字を「,」文字、および「%」や「 「?」エスケープする必要があります。詳細については、OPC を参照してください。
1) さらにクエリとフラグメントの可能性がありますが、ここでは関係ありません。
答えはリンク先のページにあり、
- 権限:
application:///
と
... さらに、「/」文字を「,」文字、および「%」や「?」などの予約文字に置き換える必要があります。エスケープする必要があります。詳細は OPC をご覧ください
そう
その
,,,
部分は何かを意味するはずですか?
の代用です///
カンマの間に何か入ることはできますか?
いいえ。
訂正: OPC (Open Packaging) リンクはECMA-376につながり、次のような例が含まれています
pack://http%3c,,www.openxmlformats.org,my.container/a/b/foo.xml
しかし、それはWPFには当てはまりません。