Я видел пару похожих тем на этот вопрос, но ни один из них действительно не отвечает на вопрос, который я хочу задать.
Для начала, к сожалению, я так печально работаю с существующим кодом API, хотяможет быть лучший способ сделать то, о чем я спрашиваю, я заблокирован, чтобы сделать это так, как это происходит, потому что обратная совместимость не подлежит обсуждению.
У меня есть класс ответа, который в настоящее времясодержит перечисление для кода ошибки и описание строки.Коды ошибок определяют довольно хороший и полный набор ответов, которые все семантически связаны с операциями, в которых они используются.
К сожалению, теперь мне нужно добавить другой рабочий процесс для аналогичного набора объектов API, и для этого потребуется описание строки, что хорошо, но также и код ошибки enum, состоящий из полностью несвязанного набора кодов ошибок.Коды ошибок (и другие аспекты объектной модели) будут использоваться во многих одних и тех же классах, поэтому было бы неплохо настроить интерфейс, чтобы я мог запускать объекты через одну и ту же платформу.
Намерение заключается в том, чтобы заключить договор, в котором говорится: «У меня есть код ошибки и описание этого кода ошибки».
Однако, насколько я знаю, нет способа добавить элемент в интерфейс, такой каккак
public interface IError
{
enum ErrorCode;
string Description;
}
и нет способа выразить
public interface IError<T> where T: enum
{
T ErrorCode;
string Description;
}
Кто-нибудь сталкивался с чем-то подобным раньше?