2013-08-26 74 views
0

我有兩個類,其中1是繼承。還有一些其他類與Acme123Response類似,具有不同的響應類。即ApplicationInfo。是否有可能禁止從第三方Web服務的類?

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

換句話說,約束BuyerResponse 爲ApplicationInfo的子類,例如?那麼是的,你應該可以做到這一點。 – DavidN

+0

ApplicationInfo是第三方類。我想將T約束到來自第三方的許多類中,可能使用接口或其他類。關於這可能如何接近的任何細節。 – dotnetnoob

回答

0

如果我正確理解了你的評論,那麼你的問題是你可以爲第三方程序集中定義的類定義基接口。 AFAIK這是不可能的(即使你可以分叉源代碼,它不是我想做的事情):我認爲你可以做的最好的事情是定義包裝類/ adapters,實現你的統一界面,然後根據你的對此的一般約束。

這也有一個屏障你自己的實現從第三方類與接口,這通常是你想要做的任何事情的影響。

+0

我想我明白了,所以創建一個類MyWrapperClass繼承ApplicationInfo,接口IMyWrapperClass – dotnetnoob

相關問題