Нулевые значения для свойства объекта десериализованы WCF

У меня есть веб-служба 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, значения там.

fiddler screenshot

Я могу получить примитивные значения для передачи, но кажется, что все объекты созданы со значениями NULL или значениями по умолчанию. Что я делаю не так?

ОБНОВЛЕНИЕ

Я так и не получил ответа на свой первоначальный вопрос, что отстой, но Сиксто предложил мне переключить сериализацию на JSON. JSON был исходным дизайном, но от него отказались, когда у меня возникли проблемы. После того, как я успешно переключился на JSON, все было правильно сериализовано и десериализовано. Теперь я просто жду, когда это сломается без каких-либо объяснений, поэтому я могу вернуться к XML ....

7
задан Jeff 3 May 2011 в 15:28
поделиться