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