Каков наилучший способ связать сообщения об ошибках с кодами ошибок в C #? - PullRequest
1 голос
/ 11 августа 2010

У меня есть часть программного обеспечения, написанная на C # .NET, которая взаимодействует с устройством через USB.Когда возникает проблема, устройство устанавливает код ошибки, который читается моим программным обеспечением в виде целого числа.Я хочу хранить сообщения об ошибках в моей программе на C #, которые соотносятся с конкретными кодами ошибок прошивки.Как лучше всего их хранить?

Мне сказали, что хорошим подходом было бы использование файла ресурсов.Каковы преимущества использования файла ресурсов?Есть ли лучший способ сделать это?

Ответы [ 2 ]

8 голосов
/ 11 августа 2010

Я бы также предложил использовать файл ресурсов.Одним из ключевых преимуществ является локализация (использование разных языков).Даже если вы не хотите использовать несколько языков сегодня, вы можете сами добавить их позже.Еще одним преимуществом является простая интеграция .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);

Кроме того, файлы ресурсов легко доступны, когда приходит время изменить сообщение.

3 голосов
/ 11 августа 2010

Ответ зависит от ваших потребностей.Нужно ли обновлять сообщение об ошибке для конкретного?Вам понадобится возможность динамически добавлять новые пары код ошибки / сообщение?Вам нужно будет локализовать сообщения об ошибках?

Самый простой способ - просто зафиксировать значения кода ошибки / сообщения с помощью IDictionary.Это будет означать, что любые обновления потребуют от вас перекомпиляции и повторного развертывания приложения.

Ресурсные файлы были бы другим вариантом.В этом случае вы сохраните пары код / ​​сообщение в файле ресурсов, и ваше приложение будет использовать код ошибки в качестве ключа для поиска соответствующего значения сообщения об ошибке.Это позволит вам динамически добавлять пары код / ​​сообщение и упростить локализацию, создав отдельный файл ресурсов для каждого языка, который вам нужно поддерживать.

Третий вариант, аналогичный второму, будетсохранить пары код ошибки / сообщения в таблице базы данных.Ваше приложение, скорее всего, уже общается с базой данных, так что это может быть более простой вариант, чем файлы ресурсов, по крайней мере, с точки зрения развертывания.Однако это усложнит локализацию.

Если бы это был я, я бы выбрал файлы ресурсов, если бы думал, что в будущем потребуется локализация, и базу данных, если я этого не сделаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...