У меня вопрос. Я получаю эту ошибку, и я знаю, что это связано с тем, что int32 имеет предел числа 2147483647. Но я не знаю, почему я получаю эту ошибку, когда значение, о котором идет речь (номер телефона из 11 цифр), определяется как строку в нашей базе данных SQL, строку в нашей веб-службе и строку в нашем веб-приложении.Исключение веб-сервиса: «Форматирующий редактор исключил при попытке десериализации сообщения«
Я предполагаю, что это связано с тем, как сериализует службы и десериализует данные по соединению, но я хотел знать, есть ли способ заставить Number использовать только строку вместо разбора, когда происходит десериализация , Или даже заставить его разбираться как int64.
Приведено исключение ошибки. Я удалил пространство имен и имя службы. Это номер свойства, который вызывает проблему.
Ошибка десериализации объекта типа. ". ClientPhone []. Значение '07721545554' не может быть проанализировано как тип 'Int32'."
И вот код для сервисного и сервисного интерфейса.
[DataContract]
public class ClientPhone
{
[DataMember]
public int? ClientNumberID { get; set; }
[DataMember]
public int? RefID { get; set; }
[DataMember]
public string Number { get; set; }
[DataMember]
public string NumberType { get; set; }
[DataMember]
public bool? PrimaryNumber { get; set; }
}
public partial class ClientNumberEntity
{
public int ClientNumbersID { get; set; }
public Nullable<int> RefID { get; set; }
public string ClientNumberType { get; set; }
public string ClientNumber { get; set; }
public Nullable<bool> PrimaryNumber { get; set; }
public virtual ClientDataEntity ClientData { get; set; }
}
public List<ClientPhone> GetClientsPhoneByReference(int _reference)
{
OurDatabaseEntities context = new OurDatabaseEntities();
var phoneEntity = (from c in context.ClientNumberEntities
where c.RefID == _reference
select c).ToList();
if (phoneEntity != null)
{
return TranslateClientPhoneEntityToPhoneNumberList(phoneEntity);
}
else
throw new Exception("Unable to get phone data");
}
private List<ClientPhone> TranslateClientPhoneEntityToPhoneNumberList(List<ClientNumberEntity> numberEntities)
{
List<ClientPhone> phoneList = new List<ClientPhone>();
foreach (ClientNumberEntity numberEntity in numberEntities)
{
ClientPhone phoneListMember = new ClientPhone();
phoneListMember.ClientNumberID = numberEntity.ClientNumbersID;
phoneListMember.RefID = numberEntity.RefID;
phoneListMember.Number = numberEntity.ClientNumber;
phoneListMember.NumberType = numberEntity.ClientNumberType;
phoneListMember.PrimaryNumber = numberEntity.PrimaryNumber;
phoneList.Add(phoneListMember);
}
return phoneList;
}
Любые советы по решению были бы благодарны! Спасибо :)