在C#中将错误消息与错误代码相关联的最佳方法是什么?

时间:2010-08-11 17:46:46

标签: c# .net error-handling resource-files

我有一个用C#.NET编写的软件,它通过USB与设备通信。出现问题时,设备会设置一个错误代码,该错误代码由我的软件以整数形式读取。我想在我的C#程序中存储与特定固件错误代码相关的错误消息。存储这些的最佳方法是什么?

有人告诉我,一个好的方法是使用资源文件。使用资源文件有什么好处?有没有更好的方法呢?

2 个答案:

答案 0 :(得分:8)

我建议也使用资源文件。一个关键的好处是本地化(使用不同的语言)。即使您今天不想使用多种语言,您也可以灵活地在以后添加它们。另一个好处是简单的.NET / c#集成。

var key = "134"; //error code
var resourceFile = "someFileName.resx";
var filePath = "c:\some\path\";
ResourceManager resourceManager = ResourceManager
    .CreateFileBasedResourceManager(resourceFile, filePath, null);
resourceValue = resourceManager.GetString(key);

此外,在更改消息时,很容易获得资源文件。

答案 1 :(得分:3)

答案取决于您的需求。是否需要更新特定错误消息?您是否需要动态添加新的错误代码/消息对?您是否需要本地化错误消息?

最简单的方法是使用IDictionary来修改错误代码/消息值。这意味着任何更新都需要您重新编译和重新部署您的应用程序。

资源文件将是另一种选择。在这种情况下,您将代码/消息对存储在资源文件中,并且您的应用程序将使用错误代码作为密钥来查找相应的错误消息值。这将允许您动态添加代码/消息对,并通过为您需要支持的每种语言创建单独的资源文件,使其易于本地化。

第三个选项,类似于第二个选项,是将错误代码/消息对存储在数据库表中。您的应用程序很可能已经在与数据库通信,因此这可能比资源文件更简单,至少从部署方面来说。但这会使本地化变得更加困难。

如果是我,我会选择资源文件,如果我认为将来需要本地化,如果我没有需要本地化。