У меня есть веб-служба 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, значения там.
Я могу получить примитивные значения для передачи, но кажется, что все объекты созданы со значениями NULL или значениями по умолчанию. Что я делаю не так?
Я так и не получил ответа на свой первоначальный вопрос, что отстой, но Сиксто предложил мне переключить сериализацию на JSON. JSON был исходным дизайном, но от него отказались, когда у меня возникли проблемы. После того, как я успешно переключился на JSON, все было правильно сериализовано и десериализовано. Теперь я просто жду, когда это сломается без каких-либо объяснений, поэтому я могу вернуться к XML ....