1

URLから画像をロードする次のコードがあります。URL が存在しない場合は、代わりにプレースホルダーをロードする必要があります。

public BitmapImage Image
{
    get
    {
        if (m_image == null)
        {
            try
            {
                BitmapImage image = new BitmapImage();
                image.BeginInit();
                image.UriSource = new Uri(m_photoPath);
                image.DecodePixelHeight = s_imagePixelHeight;
                image.EndInit();
                m_image = image;
            }
            catch (FileNotFoundException)
            {
                BitmapImage image = new BitmapImage();
                image.BeginInit();
                image.UriSource = new Uri(c_placeholderImagePath);
                image.DecodePixelHeight = s_imagePixelHeight;
                image.DecodePixelWidth = s_imagePixelWidth;
                image.EndInit();
                m_image = image;
            }
        }
        return m_image;
    }
}

最も奇妙なエラーm_photoPathが発生しています。どのブラウザーでも 404 を引き起こす URL の場合、例外はスローされません。を使用してファイルが存在するかどうかを確認しようとしましたが、HttpWebRequestを呼び出すたびに[HttpWebRequest instance].GetResponse()、非常に長いタイムアウトが発生します (おそらく無限です-見つけるのを待っていませんでした)。したがってHttpWebRequest、オプションではありません。何か案は?

4

1 に答える 1