[英]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.