1が継承される2つのクラスがあります。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
}
}