是否可以包含来自第三方Web服务的类?

时间:2013-08-26 18:00:13

标签: c# inheritance constraints

我有两个类,其中1是继承的。还有许多类似于Acme123Response的其他类具有不同的响应类。即ApplicationInfo。

ApplicationInfo属于第三方Web服务。问题是,如果给出ApplicationInfo并且其余的超出我的直接控制范围,是否可以向BuyerResponse添加where约束?

public class Acme123Response : BuyerResponse<ApplicationInfo>
{
    public Acme123Response(ApplicationInfo response)
        : base(response)
    {
    }
}

public abstract class BuyerResponse<T> : ResponseBase
{
    readonly T _response;

    protected T Response
    {
        get { return _response; }
    }

    protected BuyerResponse(T response)
    {
        _response = response;

        // Do something else
    }
}

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的评论,那么您的问题是,您可以为第三方程序集中定义的类定义基本界面。 AFAIK这是不可能的(即使你可以分叉源它不是我想要做的事情):我认为你能做的最好的是定义实现你的统一接口的包装类/ adapters,然后根据它建立通用约束。

这也可以通过界面屏蔽你自己的实现与第三方类,这通常是你想要做的事情。