По умолчанию WCF десериализует отсутствующие элементы в значения по умолчанию, такие как null, 0 или false. Проблема с этим подходом заключается в том, что если это базовый тип, например, номер 0, я не уверен, означает ли это реальное значение, отправленное внешней системой, или значение по умолчанию, созданное WCF.Значения по умолчанию для элемента данных, как выяснить, действительно ли отправлено сообщение?
Так что мой вопрос: можно ли узнать во время выполнения, означает ли значение по умолчанию «Я ничего не посылал».
Это очень важно, потому что мы не можем обновлять и перезаписывать существующие данные в базе данных значениями по умолчанию только потому, что на этот раз внешняя система не отправила определенный элемент (повреждение данных).
Короткий ответ Microsoft: «Конечная точка приема должна интерпретировать недостающий элемент».
значения по умолчанию элемент данных http://msdn.microsoft.com/en-us/library/aa347792.aspx
Может кто-нибудь, пожалуйста, уточнить, что это должно означать?
Благодаря
Вы можете использовать OnDeserializedAttribute или OnDeserializingAttribute http://msdn.microsoft.com/en-us/library/system.runtime.serialization.ondeserializedattribute.aspx или http://msdn.microsoft.com/en- us/library/system.runtime.serialization.ondeserializingattribute.aspx –
Как насчет использования элементов с возможностью сбрасывания данных? http://stackoverflow.com/questions/2426892/wcf-datacontract-does-it-support-nullable-data-member В принципе, я хотел бы иметь какие-то нулевые проверки перед сохранением полей в базе данных. Может ли WCF десериализовать отсутствующие элементы в значениях с нулевыми значениями? – user405723