Учитывая URI пакета://, какой лучший способ сказать, действительно ли скомпилированный ресурс (например, PNG-образ, скомпилированный с помощью действия сборки "Ресурс" ) на этом URI?
После некоторого спотыкания я придумал этот код, который работает, но неуклюже:
private static bool CanLoadResource(Uri uri)
{
try
{
Application.GetResourceStream(uri);
return true;
}
catch (IOException)
{
return false;
}
}
(Обратите внимание, что Application.GetResources документация неверна - он генерирует исключение, если ресурс не найден, вместо того, чтобы возвращать нуль, как правило, неправильно документируют документы.) (Документы были исправлены, см. комментарии ниже)
Мне не нравится ловить исключения, чтобы обнаружить ожидаемый (не исключительный) результат. И кроме того, я действительно не хочу загружать поток, я просто хочу знать, существует ли он.
Есть ли лучший способ сделать это, возможно, с API-интерфейсами более низкого уровня - в идеале, без фактической загрузки потока и не вылавливания исключения?