2012-08-30 59 views
0

我有一個WCF服務。它有以下屬性。反序列化對象時出錯

[DataMember] 
public List<uttAppointmentPhoneList> AppointmentPhoneList { get; set; } 

public class uttAppointmentPhoneList 
{ 
    string _PhoneType; 
    Int32 _PhoneNumber; 
    bool _IsDelete; 

    [DataMember] 
    public string PhoneType 
    { 
     get { return _PhoneType; } 
     set { _PhoneType = value; } 
    } 

    [DataMember] 
    public Int32 PhoneNumber 
    { 
     get { return _PhoneNumber; } 
     set { _PhoneNumber = value; } 
    } 

    [DataMember] 
    public bool IsDelete 
    { 
     get { return _IsDelete; } 
     set { _IsDelete = value; } 
    } 

} 

但是,當我發送請求時出現以下錯誤。

格式化程序在嘗試反序列化消息時引發異常:嘗試反序列化參數時發生錯誤。 InnerException消息是'反序列化MarshfieldClinic.Denbigh.AppointmentService.Sync.DataContracts.mydayapp類型的對象時發生錯誤。值'3456787463'不能被解析爲類型'Int32''。有關更多詳細信息,請參閱InnerException。

任何想法爲什麼會發生這種情況?由於

回答

0

Int32 PhoneNumber

這是完全錯誤的。
電話號碼是一個字符串,而不是數字。

發生此特定錯誤是因爲大多數電話號碼不適合32位。
但是,您需要使用一個字符串。

0

看起來的Int32是你正在處理的值(3456787463)太小。 嘗試很長時間,看看它是否有效。

或者,如果它是一個電話號碼,你總是可以在程序中使用字符串,因此使用String後格式化它根據自己的喜好

0

使用PhoneNumber作爲信息輸入,你不需要任何密集型計算研究