以多种语言记录和显示 .NET 异常
本文关键字:显示 NET 异常 记录 语言 | 更新日期: 2023-09-27 17:56:38
>我在数据库中记录我的应用程序的错误消息和 .NET 异常,并将它们显示在 GUI 上。GUI 以运行应用程序的用户的区域设置的语言显示错误消息。为了实现这一点,我只记录错误消息的资源名称,并使用资源文件将它们转换为有意义的消息。
但是,我无法思考如何为 .NET 标准异常消息实现相同的目标。我只能记录消息字符串,但是语言已经"烘焙",所以我只能以该语言显示异常。
有没有办法获取 .NET 异常的资源名称 + 插入到消息字符串中的所有参数,以便我可以记录这些参数?
异常没有资源名称这样的东西,但有 Exception
类的 HResult
属性。标准 .NET 框架异常具有有效且唯一的HResult
编号,然后可以将其映射到可以转换的自己的资源标识符。此外,还有 Exception.Data
属性,其中可能包含有关异常的其他信息。
或者,您可以使用正则表达式等手动解析异常消息,然后映射到您的资源 ID,但我认为这太费力了。
我也遇到了这个问题,并对此进行了大量研究。 根据我能说的一切,没有办法本地化异常本身,因为您看到的不是本地化字符串,而是实际代码。 代码仅以一种语言(英语)编写,并且只能按英语显示。