我的数据结构如下:
public class HighLevelConversionData
{
public int customerID {get;set;}
public string customerName {get;set;}
public decimal amountSpent {get;set;}
}
这些数据将由第三方和GWT前端访问,这意味着我将使用Web服务来移动数据。客户也是与开发团队不同的本地化,所以我想发送状态消息作为返回数据项的包装器,如下所示:
public class HighLevelConversionDataWrapper
{
public int StatusCode {get;set;}
public string StatusMessage {get;set;}
public List<HighLevelConversionData> {get;set;}
}
但是我宁愿为这些方法继承一个接口,以确保我们始终发送状态码&amp;消息以同样的方式。但是我对泛型如何在界面中工作的理解似乎让我失望了。我相信它应该是这样的:
public Interface IServiceWrapper
{
public int StatusCode {get;set}
public string StatusMessage {get;set;}
public List<T> ReturnedData {get;set;}
}
但是我来这里不见了。
答案 0 :(得分:8)
这样的东西?
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;}
}
答案 1 :(得分: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;}
}