В моем локализуемого приложение, которое я бросить ArgumentException, как это:Локализация ArgumentException.Message в .NET
throw ArgumentException("LocalizedParamName", "LocalizedErrorMessage");
И я ловлю это так:
catch (Exception ex)
{
Display(ex.Message);
}
Я получаю в результате ошибки сообщение как:
LocalizedErrorMessage имя Параметр: LocalizedParamName
Проблема здесь: «Имя параметра:», которое написано на английском языке, а не на языке моего приложения. Я утверждаю, что строка находится на языке платформы .NET. Может ли кто-нибудь подтвердить это?
Один из способов это делает:
catch (ArgumentException ex)
{
Display((ex as Exception).Message + "\n" + "Translated(Parameter name:)"+ ex.ParamName);
}
catch (Exception ex)
{
Display(ex.Message);
}
Есть ли другие более элегантный способ?
Erm, не уверен ваш вопрос или, может быть, я неправильно понимаю, но вы не должны локализовать свойство ParamName ArgumentException - неужели у вас нет разных версий одной и той же базы кода на нескольких языках? – RichardOD