实例化对象时强制使用特定的接口

时间:2019-03-04 16:04:06

标签: c# inheritance wrapper

我正在使用允许我访问远程计算机的库。

该库至少已有十年历史了,随着时间的流逝,他们将多个特征添加到了多个对象中;为了做到这一点而又不破坏兼容性(至少我是这样认为的),他们设计了多个接口,实现如下:

//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接口派生新对象,因为这是包含Who-knows-what的c ++库的C#包装,显然,它不仅需要简单的{ {1}}。

谢谢您的时间。

0 个答案:

没有答案