1

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

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

4

2 回答 2

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);

此外,当需要更改消息时,很容易获取资源文件。

于 2010-08-11T17:52:48.840 回答
3

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

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

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

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

如果是我,如果我认为以后需要本地化,我会选择资源文件,如果我没有,我会选择数据库。

于 2010-08-11T17:59:37.040 回答