我在数据库中记录应用程序的错误消息和.NET异常,并在GUI上显示它们。 GUI以运行应用程序的用户的语言环境的语言显示错误消息。为了实现这一点,我只记录错误消息的资源名称,并使用资源文件将它们转换为有意义的消息。
但是,我无法理解如何为.NET标准异常消息实现相同的目标。我只能记录消息字符串,但之后语言已经“烘焙”,因此我只能用该单一语言显示异常。有没有办法获取插入到消息字符串中的.NET异常 +所有参数的资源名称,以便我可以记录这些?< / p>
答案 0 :(得分:2)
异常没有资源名称,但有HResult
property of the Exception
class。标准.NET framework exceptions have valid and unique HResult
numbers,您可以将其映射到您可以翻译的自己的资源标识符。
此外,还有Exception.Data
属性,可能包含有关异常的其他信息。
或者,您可以使用正则表达式等手动解析异常消息,然后映射到您的资源ID,但我认为这是太多的努力。
答案 1 :(得分:0)
我也有这个问题,并对此进行了大量的研究。基于我可以告诉的一切,没有办法本地化异常本身,因为你看到的不是本地化的字符串,它是实际的代码。代码只用一种语言(英语)编写,只能这样显示。