C #: Перечисления в интерфейсах

Я видел пару похожих тем на этот вопрос, но ни одна из них не отвечает на вопрос, который я хочу задать.

Для начала, к сожалению, я так печально работаю с существующим кодом API, хотя, возможно, есть лучший способ сделать то, о чем я спрашиваю, я заблокирован, чтобы сделать это так же, как это происходит, потому что обратная совместимость не -negotiable.

У меня есть класс ответа, который в настоящее время содержит перечисление для кода ошибки и описание строки. Коды ошибок определяют довольно хороший и полный набор ответов, которые все очень семантически связаны с операциями, в которых они используются.

К сожалению, теперь мне нужно добавить другой рабочий процесс для аналогичного набора объектов API, и для этого потребуется описание строки, что хорошо, но также и код ошибки enum, состоящий из совершенно не связанного набора кодов ошибок. Коды ошибок (и другие аспекты объектной модели) будут использоваться во многих одних и тех же классах, поэтому было бы неплохо настроить интерфейс, чтобы я мог запускать объекты через одну и ту же среду.

Намерение заключается в том, чтобы заключить договор, в котором говорится: «У меня есть код ошибки и описание этого кода ошибки».

Однако, насколько я знаю, нет способа добавить элемент в интерфейс, такой как

public interface IError
{
    enum ErrorCode;
    string Description;
}

и нет способа выразить

public interface IError<T> where T: enum
{
    T ErrorCode;
    string Description;
}

Кто-нибудь сталкивался с чем-то подобным раньше?

Ответы на вопрос(5)

Ваш ответ на вопрос