簡體   English   中英

如何在WCF中序列化對象類型?

[英]How to serialize object type in WCF?

我有這個Dto模型類:

[System.Runtime.Serialization.DataContract, System.Serializable]
public class DataObj
{
    [System.Runtime.Serialization.DataMember]
    public object Value { get; set; }

    public static DataObj CreateDataObj(object obj)
    {
        return new DataObj { Value = obj };
    }
}

static void main()
{
      var obj1 = DataObj.CreateDataObj(10);
      wcfService.Send(obj1);
      var obj2 = DataObj.CreateDataObj("hello");
      wcfService.Send(obj2);
      var obj3 = DataObj.CreateDataObj(new int[]{10, 20,30});
      wcfService.Send(obj3);
      var obj4 = DataObj.CreateDataObj(new string[]{"ht", "fd","xs"});
      wcfService.Send(obj4);
 }

main方法中,對obj 1和2的WCF調用可以,但是對obj 3和4的WCF調用則不可以,並引發序列化異常。

如何在服務呼叫中轉移obj 3和obj 4?

在WCF通信中,我們必須明確指定序列化的類型。 這樣可以確保客戶端和服務器在通信期間都能識別自定義類型。 將數據成員標記為對象違反了WCF設計模式。 根據您的方案,可以使用Datatable類型,但是不建議使用。
https://www.c-sharpcorner.com/UploadFile/deepak.sharma00/how-to-return-a-datatable-from-wcf-service/
建議您在設計數據協定時指定需要序列化的數據類型。 例如,我們可以考慮使用List [T]。
請隨時告訴我是否有什么我可以幫助的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM