Ошибочное представление действительно является ключевым. Существует много детали там - при необходимости, щелкните правой кнопкой по записям и скопируйте их содержание в свой любимый текстовый редактор. Одна проблема, которая может подойти, например, состоит в том, что, если у Вас уже есть конфигурация сервера на месте, и один из XML-файлов конфигурации unparseable, сервер не может быть добавлен. Это произошло со мной этим вечером - мой <Context>
, элемент имел разрыв строки в нем, таким образом, это было <C
(разрыв строки) ontext>
. Это препятствовало тому, чтобы Eclipse воссоздал конфигурацию сервера.
Это может быть немного неинтуитивно (и меня тоже застало врасплох!), Но это единственный правильный способ обработки элементов, которые могут или не могут быть указаны в вашей XML-схеме.
И также может показаться нелогичным, что вы должны сами установить флаг xyzSpecified
, но в конечном итоге это дает вам больше контроля, и WCF полностью посвящен Четырем принципам SOA , чтобы быть очень точным и ясным в отношении ваших намерений.
Итак, в основном - так оно и есть, привыкните к этому :-) Это поведение никак нельзя «миновать» - это способ, которым была разработана система WCF, и по уважительной причине.
Что вы всегда можете сделать, так это поймать и обработать this.RaisePropertyChanged ("EditDate");
Ян, Пожалуйста, не обращайте внимания на мои предыдущие ответы, объясняющие, как сосать яйца. Я проголосовал за их удаление.
Не могли бы вы сказать, какую версию Visual Studio вы используете, пожалуйста?
В клиенте VS2005 - в сгенерированном коде я получаю
, но при изменении значений не возникает событие. Для передачи данных мне нужно установить флаг
.
В клиенте Visual Web Developer 2008 Express - в сгенерированном коде я не получаю флагов
, но я получаю сообщение об изменении значения.
Мне кажется, что эта функциональность эволюционировала, и Web Dev 2008 ближе к тому, что вам нужно, и более интуитивно понятен, поскольку вам не нужно устанавливать помечает, как только вы установите значение.
Bowthy
Попробуйте это
[DataMember(IsRequired=true)]
public DateTime EditDate { get; set; }
Это должно пропустить EditDatesEpecied
свойство, поскольку поле указано в соответствии с требованиями