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