以多种语言记录和显示.NET异常

时间:2013-01-29 22:07:54

标签: c# .net exception-handling internationalization

我在数据库中记录应用程序的错误消息和.NET异常,并在GUI上显示它们。 GUI以运行应用程序的用户的语言环境的语言显示错误消息。为了实现这一点,我只记录错误消息的资源名称,并使用资源文件将它们转换为有意义的消息。

但是,我无法理解如何为.NET标准异常消息实现相同的目标。我只能记录消息字符串,但之后语言已经“烘焙”,因此我只能用该单一语言显示异常。

有没有办法获取插入到消息字符串中的.NET异常 +所有参数资源名称,以便我可以记录这些?< / p>

2 个答案:

答案 0 :(得分:2)

异常没有资源名称,但有HResult property of the Exception class。标准.NET framework exceptions have valid and unique HResult numbers,您可以将其映射到您可以翻译的自己的资源标识符。 此外,还有Exception.Data属性,可能包含有关异常的其他信息。

或者,您可以使用正则表达式等手动解析异常消息,然后映射到您的资源ID,但我认为这是太多的努力。

答案 1 :(得分:0)

我也有这个问题,并对此进行了大量的研究。基于我可以告诉的一切,没有办法本地化异常本身,因为你看到的不是本地化的字符串,它是实际的代码。代码只用一种语言(英语)编写,只能这样显示。