我們創建了一個類來包裝Web服務響應的有效負載,其中包含以下常見信息。SOAP通用類型序列化
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」 - 它是XML序列化器工作的方式。 – 2011-04-05 20:08:56
是的,我認爲這是正確的。 XML序列化程序創建「虛擬」程序集的方式意味着它需要能夠設置導致問題的實例屬性。 – Sheff 2011-04-07 08:51:41