2011-01-24 51 views
4

我有一個數據結構是這樣的:創建界面,有一個通用的List對象

public class HighLevelConversionData 
{ 
    public int customerID {get;set;} 
    public string customerName {get;set;} 
    public decimal amountSpent {get;set;} 
} 

這些數據將通過第三方和GWT前端進行訪問,這意味着我將使用網絡服務來移動數據。客戶也是不同的定位比開發團隊的,所以我想發送狀態信息的包裝器返回的數據項,像這樣:

public class HighLevelConversionDataWrapper 
{ 
    public int StatusCode {get;set;} 
    public string StatusMessage {get;set;} 
    public List<HighLevelConversionData> {get;set;} 
} 

但是我寧願有一個接口這些方法可以繼承,以確保我們始終以相同的方式發送狀態碼&消息。但我對泛型如何在界面中工作的理解似乎讓我失望。我相信它應該是這樣的:

public Interface IServiceWrapper 
{ 
    public int StatusCode {get;set} 
    public string StatusMessage {get;set;} 
    public List<T> ReturnedData {get;set;} 
} 

但我在這裏已經脫落了。

回答

7

是這樣的嗎?

public class ConcreteWrapper : IServiceWrapper<HighLevelConversionData> 
{ 
    public int StatusCode {get;set;} 
    public string StatusMessage { get; set; } 
    public List<HighLevelConversionData> ReturnedData { get; set;} 
} 

public class HighLevelConversionData 
{ 
    public int customerID {get;set;} 
    public string customerName {get;set;} 
    public decimal amountSpent {get;set;} 
} 

public interface IServiceWrapper<T> 
{ 
    int StatusCode { get; set; } 
    string StatusMessage { get; set; } 
    List<T> ReturnedData { get; set;} 
} 
+0

我現在就試試這個。我認爲我是一個傻瓜,忘記添加通用作爲界面的參數。 – Refugee 2011-01-24 09:59:02

2

如果接口有泛型類型參數,接口本身必須是通用的,所以你需要做的:

public interface IServiceWrapper<T> 
{  
    public int StatusCode {get;set}  
    public string StatusMessage {get;set;}  
    public List<T> ReturnedData {get;set;} 
} 

,然後指定類型參數在這樣的代碼:

public class HighLevelConversionDataServiceWrapper 
      : IServiceWrapper<HighLevelConversionData> 
{ 
    public List<HighLevelConversionData> ReturnedData {get;set;} 
}