gpt4 book ai didi

c# - .NET 中 ArgumentException.Message 的本地化

转载 作者:行者123 更新时间:2023-11-30 14:44:03 25 4
gpt4 key购买 nike

在我的可本地化应用程序中,我抛出如下 ArgumentException:

throw ArgumentException("LocalizedParamName", "LocalizedErrorMessage");

我是这样理解的:

catch (Exception ex)
{
Display(ex.Message);
}

我得到的错误消息是:

本地化错误信息参数名称:LocalizedParamName

这里的问题是“参数名称:”,它是英文的,而不是我的应用程序的语言。我假设该字符串使用的是 .NET 框架的语言。谁能证实这一点?

一种解决方法是这样做:

catch (ArgumentException ex)
{
Display((ex as Exception).Message + "\n" + "Translated(Parameter name:)"+ ex.ParamName);
}
catch (Exception ex)
{
Display(ex.Message);
}

还有其他更优雅的方式吗?

最佳答案

您正在使用非空参数名称调用构造函数 ArgumentException(string message, string paramName)。

执行此操作时,您会得到所看到的结果,即您的消息后跟“参数名称:您的参数名称”。

文本“参数名称:”来自 .NET Framework 资源:您未获得本地化版本的原因可能是您尚未在计算机上安装相关的 .NET Framework 语言包。可以下载语言包here .

如果您安装所用语言的语言包,您将获得预期的结果。

或者,您可以使用构造函数 ArgumentException(string message),并构建您自己的消息,包括参数名称。

关于c# - .NET 中 ArgumentException.Message 的本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1014257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com