我有一个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 :(得分:0)
Int32 PhoneNumber
这完全错了。
电话号码是字符串,而不是数字。
发生此特定错误是因为大多数电话号码不适合32位 但是,您需要使用字符串。
答案 1 :(得分:0)
该int大于最大int值。使用字符串作为电话号码。
max int value:2,147,483,647(来源:http://www.dotnetperls.com/int-maxvalue)
3,456,787,463&gt; 2147483647
答案 2 :(得分:0)
看来Int32对于您正在处理的值来说太小了(3456787463)。 试试看,看看它是否有效。
或者,如果是电话号码,您可以随时使用字符串,并根据您的喜好将其格式化
答案 3 :(得分:0)
使用PhoneNumber
作为信息性输入,因此使用String
并且您不需要在程序中进行任何密集计算