1

USB経由でデバイスと通信するC#.NETで記述されたソフトウェアがあります。問題が発生すると、デバイスはエラーコードを設定します。このエラーコードは、ソフトウェアによって整数の形式で読み取られます。特定のファームウェアエラーコードに関連するエラーメッセージをC#プログラムに保存したい。これらを保存するための最良の方法は何ですか?

リソースファイルを使用するのが良いアプローチだと言われています。リソースファイルを使用する利点は何ですか?それを行うためのより良い方法はありますか?

4

2 に答える 2

8

リソースファイルも使用することをお勧めします。主な利点の1つは、ローカリゼーション(さまざまな言語を使用)です。今日、複数の言語を使用したくない場合でも、後でそれらを追加する柔軟性を自分に与えることができます。もう1つの利点は、単純な.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を使用してエラーコード/メッセージ値をハード化することです。つまり、更新を行うには、アプリケーションを再コンパイルして再デプロイする必要があります。

リソースファイルは別のオプションです。この場合、コードとメッセージのペアをリソースファイルに保存し、アプリケーションはエラーコードをキーとして使用して適切なエラーメッセージ値を見つけます。これにより、コードとメッセージのペアを動的に追加でき、サポートする必要のある言語ごとに個別のリソースファイルを作成することで、ローカライズが容易になります。

2番目と同様の3番目のオプションは、エラーコードとメッセージのペアをデータベーステーブルに格納することです。アプリケーションはおそらくすでにデータベースと通信しているため、少なくともデプロイメントの観点からは、これはリソースファイルよりも簡単なオプションである可能性があります。ただし、これによりローカリゼーションがより困難になります。

私の場合、将来ローカライズする必要があると思われる場合はリソースファイルを選択し、そうでない場合はデータベースを選択します。

于 2010-08-11T17:59:37.040 に答える