Проверьте, является ли файл .xaml действительным или нет - PullRequest
0 голосов
/ 13 октября 2019

Я делаю систему перевода со словарями ресурсов в WPF. Но у меня возникает проблема, когда я пытаюсь загрузить недопустимый файл xaml в словарь ресурсов (например, так):

// Path is the path of my .xaml file (the file is invalid for the tests)
try {
    Current = new ResourceDictionary() {
        Source = new Uri(path)
    };
} catch (Exception e) {
    MessageBox.Show(e.Message);
}

Это вызывает исключение. Если это просто, что я могу просто поймать его, и я знаю, действителен ли файл xaml или нет.

Но проблема в следующем: попытка catch не получает исключения. Исключение по-прежнему вызывает сбой моего приложения, и я не знаю, почему.

Я действительно хочу иметь возможность просто знать, является ли файл действительным или нет. (Чтобы предотвратить сбой приложения, если пользователь просто установил путь к недопустимому файлу xaml)

Кто-то знает, как перехватить исключение или просто узнать перед загрузкой файла xaml, если оно допустимо?

РЕДАКТИРОВАТЬ: Исключение: System.Windows.Markup.XamlParseException

1 Ответ

0 голосов
/ 13 октября 2019

Я нашел решение:

// Check if file content is valid
try { 
    XElement.Load(path); 
    // The file is valid
} 
catch { 
    // The file is not valid
    return false; 
}
...