如何在 WCF 中使用泛型集合
How to use a generic collection in WCF
我想要 return 包含项目数组的响应。
我希望能够在此响应中使用任何 class。所以项目数组是一个通用的 IList 属性.
我的客户端应用重用 Response 和 Dto class 库。当尝试更新服务引用失败时;没有生成代理 class。我搜索并发现我需要使用 way 修复这个通用列表。
我怎样才能做到这一点?
回复class:
namespace x.Response
{
[DataContract]
public class BlockDataResponse<T> : ResponseBase
{
[DataMember]
public IList<BlockDataDto<T>> DataList { get; set; }
}
}
项目 class 响应 class:
namespace x.Dto
{
[DataContract]
public class BlockDataDto<T>
{
[DataMember]
public int RecordIndex { get; set; }
[DataMember]
public T Data { get; set; }
}
}
任意类型 class:
namespace x.Dto.Definitions
{
[DataContract]
public class AbcDto : DtoBase<AbcDto>
{
[DataMember]
public string Property1 {get; set;}
//...
}
}
服务方式:
[OperationContract]
BlockDataResponse<AbcDto> GetAbcData(int startIndex, int blockSize);
好的。我刚刚解决了我的问题。
响应class:
namespace x.Response
{
[DataContract]
public class BlockDataResponse<T> : ResponseBase
{
[DataMember]
public IList<T> DataList { get; set; }
}
}
项目 class 响应 class:
namespace x.Dto
{
[DataContract]
public class BlockDataDto<T>
{
[DataMember]
public int RecordIndex { get; set; }
[DataMember]
public T Data { get; set; }
}
}
任何类型 class:
namespace x.Dto.Definitions
{
[DataContract]
public class AbcDto : DtoBase<AbcDto>
{
[DataMember]
public string Property1 {get; set;}
//...
}
}
服务方式:
[OperationContract]
BlockDataResponse<BlockDataDto<AbcDto>> GetAbcData(int startIndex, int blockSize);
我想要 return 包含项目数组的响应。
我希望能够在此响应中使用任何 class。所以项目数组是一个通用的 IList 属性.
我的客户端应用重用 Response 和 Dto class 库。当尝试更新服务引用失败时;没有生成代理 class。我搜索并发现我需要使用 way 修复这个通用列表。
我怎样才能做到这一点?
回复class:
namespace x.Response
{
[DataContract]
public class BlockDataResponse<T> : ResponseBase
{
[DataMember]
public IList<BlockDataDto<T>> DataList { get; set; }
}
}
项目 class 响应 class:
namespace x.Dto
{
[DataContract]
public class BlockDataDto<T>
{
[DataMember]
public int RecordIndex { get; set; }
[DataMember]
public T Data { get; set; }
}
}
任意类型 class:
namespace x.Dto.Definitions
{
[DataContract]
public class AbcDto : DtoBase<AbcDto>
{
[DataMember]
public string Property1 {get; set;}
//...
}
}
服务方式:
[OperationContract]
BlockDataResponse<AbcDto> GetAbcData(int startIndex, int blockSize);
好的。我刚刚解决了我的问题。
响应class:
namespace x.Response
{
[DataContract]
public class BlockDataResponse<T> : ResponseBase
{
[DataMember]
public IList<T> DataList { get; set; }
}
}
项目 class 响应 class:
namespace x.Dto
{
[DataContract]
public class BlockDataDto<T>
{
[DataMember]
public int RecordIndex { get; set; }
[DataMember]
public T Data { get; set; }
}
}
任何类型 class:
namespace x.Dto.Definitions
{
[DataContract]
public class AbcDto : DtoBase<AbcDto>
{
[DataMember]
public string Property1 {get; set;}
//...
}
}
服务方式:
[OperationContract]
BlockDataResponse<BlockDataDto<AbcDto>> GetAbcData(int startIndex, int blockSize);