我有两个类,其中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
}
}
答案 0 :(得分:0)
如果我正确理解了您的评论,那么您的问题是,您可以为第三方程序集中定义的类定义基本界面。 AFAIK这是不可能的(即使你可以分叉源它不是我想要做的事情):我认为你能做的最好的是定义实现你的统一接口的包装类/ adapters,然后根据它建立通用约束。
这也可以通过界面屏蔽你自己的实现与第三方类,这通常是你想要做的事情。