我们已经创建了一个类来包装 Web 服务响应的有效载荷,如下所示。
public class ItemResponse<T> : Response
{
/// <summary>
/// constructor to set private properties Item and Status
/// </summary>
/// <param name="item"></param>
/// <param name="status"></param>
public ItemResponse(T item, ResponseStatusEnum status) : base(status)
{
_item = item;
}
public ItemResponse()
{
}
public ItemResponse(ResponseStatusEnum status, System.Collections.Generic.List<ResponseError> errors) : base(status, errors)
{
}
private T _item;
public T Item
{
get
{
return _item;
}
}
}
基类“Response”只保存错误信息和响应状态。 wsdl 清楚地显示此响应的定义为 ItemResponseOfType[TypeName],但定义中缺少项目类型信息。
我们尝试添加
[XmlInclude(typeof(TypeName))]
但无济于事。有什么想法可以让 SOAP 序列化程序知道我们想要“Item”类型序列化吗?
最佳答案
SOAP 序列化程序不支持泛型类型。 Microsoft 建议使用 WCF http://msdn.microsoft.com/en-us/library/ms172342(v=VS.100).aspx .在 WCF 之前,我记得他们推荐 XML 序列化程序。
关于c# - SOAP 泛型类型序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5539973/