0

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

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
    }
}
4

1 回答 1

0

如果我正确理解了您的评论,那么您的问题是您能否为第 3 方程序集中定义的类定义一个基本接口。AFAIK 这是不可能的(即使你可以分叉源代码也不是我想做的事情):我认为你能做的最好的事情是定义实现统一接口的包装类/适配器,然后基于你的对此的一般约束。

这还具有将您自己的实现与具有接口的 3rd 方类屏蔽开的效果,这通常是您无论如何都想做的事情。

于 2013-08-26T20:04:42.277 回答