У меня есть веб-сервис WCF, который использовал для нормальной работы. Где-то вниз по линии это прекратилось, и я не могу сказать, почему. Код и интерфейс никогда не менялись, равно как и web.config (по крайней мере, в отношении раздела веб-сервисов). У меня есть класс:
[DataContract]
public class QuizServiceArgs
{
[DataMember(IsRequired = true, Order = 1)]
public int Category1 { get; set; }
[DataMember(IsRequired = true, Order = 2)]
public int Category2 { get; set; }
[DataMember(IsRequired = true, Order = 3)]
public int Category3 { get; set; }
[DataMember(IsRequired = true, Order = 4)]
public int Category4 { get; set; }
}
А интерфейс сервиса прост:
public interface IQuizService
{
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json)]
ServiceResult Save(QuizServiceArgs answers, string strvalue, int intvalue);
}
Вторые два параметра strvalue
и intvalue
были добавлены только для устранения неполадок, чтобы увидеть, были ли они десериализованы - и они есть. Когда я подключаюсь к сервису, я получаю сообщение о том, что в запросе отсутствует параметр Category1
, но, как видно на снимке экрана Fiddler, значения есть.
Я могу получить примитивные значения для передачи, но объекты, кажется, создаются с нулевыми значениями или значениями по умолчанию. Что я делаю не так?
UPDATE
На самом деле я так и не получил ответ на свой первоначальный вопрос, который отстой, но Сиксто предложил переключить сериализацию на JSON. JSON был оригинальным дизайном, но получил, когда у меня возникли проблемы с ним. После того, как я успешно переключился обратно на JSON, все было правильно сериализовано и десериализовано. Сейчас я просто жду, пока это не прекратится без объяснения причин, чтобы я мог вернуться к XML ....