クエリ文字列を含む相対 URL を介してサーバーから画像を読み込もうとしている Silverlight アプリがあります。具体的には、パラメーター「url」を受け取る proxy.jsp というプロキシ ページにアクセスしています。System.Uri コンストラクターに渡す文字列にクエリ文字列が含まれていることを確認しましたが、Silverlight がそれを削除または無視しているように見えます。サンプルコードは次のとおりです。
string proxyUrl = "../proxy.jsp?url=anything";
Uri uri = new Uri(proxyUrl, UriKind.Relative);
BitmapImage im = new BitmapImage(uri);
someSilverlightImage.Source = im;
私のproxy.jspは、urlパラメータがnullの場合に返されるデフォルトの画像を返すため、ベースURLが正しいことはわかっています。おもしろいので、プロパティ uri.Query を MessageBox で表示しようとしましたが、Query プロパティは UriKind.Absolute でのみサポートされているという例外が発生しました。 しかし、 を表示するuri.ToString()
と、渡した完全な URL が得られます。
私の質問は次のとおりです。
- デフォルトでは、Silverlight は相対 URI を要求するときにクエリ文字列を無視するという私の結論は正しいですか?
- もしそうなら、デフォルトを上書きするためにできる設定はありますか?
- デフォルトを上書きできない場合、この一見明白な省略の動機となった設計または実装の問題についての洞察はありますか?
ありがとう!