最佳实践:在C#.net中存储异常/错误或信息性消息以进行国际化的最佳方法是什么?

当向最终用户抛出自定义异常或发出消息时,可以使用硬编码字符串(包括字符串常量),使用仅资源程序集或从数据库中的表中获取字符串.

我希望我的应用程序能够轻松切换到另一种语言,而无需重新编译.虽然将字符串资源存储在程序集或数据库中会实现此目的,但它增加了程序逻辑的复杂性,进而增加了产品的成本.

我的问题是:在不忽略每个选项带来的成本的情况下,考虑目标的最佳方法是什么?如果你的练习比列出的更好,我很乐意听.

技术:
操作系统:Windows系列
平台:.NET Frame 2及更高版本
语言:C#
数据库:MS SQL 2005及更高版本

多谢你们!

卡伦

最佳答案
使用资源:

这如何增加程序逻辑的复杂性?

try
{
   //do something with System.Net.Mail with invalid email..
}
catch (FormatException fex)
{
    throw new Exception(Resources.ErrorMsg.Invalid_Email, fex);
}

编辑

在VS2008中创建资源时,您可以定义其内部还是公共资源.假设我们将它设置为public,在一个名为ClassLibrary1的程序集中,我们可以访问如下属性:

ClassLibrary1.Properties.Resources.InvalidError

InvalidError是错误的名称.我再一次认为这不会给逻辑增加任何强制性.

转载注明原文:最佳实践:在C#.net中存储异常/错误或信息性消息以进行国际化的最佳方法是什么? - 代码日志