Я работаю с библиотекой, которая дает мне доступ к удаленной машине.
Эта библиотека отсутствует как минимум 10 лет, и со временем они добавили в нее несколько выборок для нескольких объектов;чтобы сделать это, не нарушая совместимость (по крайней мере, я так думаю), они разработали несколько интерфейсов, которые реализованы следующим образом:
//Version 1.0:
interface First
{
void AMethod();
}
//Version 1.1:
interface Second : First
{
void AMethod();
void AnotherMethod();
}
//Version 1.2:
interface Third : Second
{
void AMethod();
void AnotherMethod();
void AlsoAnotherMethod();
}
//Version 1.3:
interface Fourth : Third
{
void AMethod();
void AnotherMethod();
void AlsoAnotherMethod();
void EvenMoreMethod();
}
------------------------------------------------------------
//Version 1.3:
public InterfaceImplementor : Fourth
{
//code that do stuff
}
Проблема в том, что теперь мне нужно подключиться к машинеон действительно старый, и использование объекта как есть возвращает «неожиданную ошибку», которая не дает мне никакой информации для отладки.
Итак, я подумал: возможно ли заставить объект реализоватьконкретный интерфейс вдоль дерева зависимостей / наследования?Это должно быть возможно, так как каждый интерфейс переопределяет каждый метод (конечно, если я решу реализовать интерфейс First
, тогда я смогу использовать только AMethod()
), я прав?
Я не могу ни изменить интерфейсы, ни извлечь новый объект из интерфейса First
, так как это оболочка C # для библиотеки c ++, которая содержит Who-знает-что, и, очевидно, ей нужно больше, чем просто NewObject : First
.
Спасибо за ваше время.