Почему моя общественная собственность не сериализируется XmlSerializer?

После того, как вы обновили последнюю версию GenyMotion до 2.10 из 2.02 ...

  1. Открыть GenyMotion
  2. Перейти к списку ваших 2.02 устройств
  3. Щелкните левой кнопкой мыши по элементу, а затем щелкните правой кнопкой мыши по меню на ** Удалить все ваши 2.02 виртуальные устройства
  4. Нажмите кнопку «Добавить» вверху, чтобы добавить новое устройство. Войдите в свою учетную запись
  5. Выберите нужное устройство. Вы можете выбирать только одно устройство за раз
  6. Нажмите кнопку «Далее». Обратите внимание на номер версии - 2.10. Здесь есть другая информация об устройстве.
  7. Устройство начнет загрузку в вашу папку GenyMotion на диске ** C. 8 После его загрузки дважды щелкните его, чтобы открыть виртуальное устройство, как обычно.
  8. Повторите для другого устройства, которое вы хотите

** C: \% Пользователи% \ AppData \ Local \ Genymobile \ Genymotion \ развертывается

58
задан 2 revs, 2 users 100% 25 July 2009 в 19:16
поделиться

3 ответа

Как упомянуто, большинство свойств должно иметь и метод считывания и метод set; основным исключением к этому являются списки - например:

private readonly List<Foo> bar = new List<Foo>();
public List<Foo> Bar {get { return bar; } } // works fine

, который будет хорошо работать; однако, если XmlSerializer находит метод set - он требует, чтобы это было общедоступно; следующее будет не работа:

public List<Foo> Bar {get; private set;} // FAIL

Другие причины это не могло бы сериализировать:

  • это не общедоступно с, получают и устанавливают (или readonly для поля)
  • , это имеет [DefaultValue] атрибут и с тем значением
  • , это имеет общественность bool ShouldSerializeFoo() метод, который возвратил false
  • , это имеет общественность bool FooSpecified {get;set;} свойство или поле, которое возвратило false
  • , это отмечено [XmlIgnore]
  • , это отмечено [Obsolete]

, Любой из них заставит это не сериализировать

91
ответ дан 4 revs, 3 users 94% 24 November 2019 в 18:53
поделиться

Мнение о getter+setter высказано в 3-м абзаце на" Введение к XML-сериализации " страница. Это находится на самом деле в поле выноски. Не может пропустить его!

ВВЕДЕНИЕ К СЕРИАЛИЗАЦИИ XML http://www.freeimagehosting.net/uploads/2f04fea2db.png

(имеющий немного слишком много забавы с Freeimagehosting.net)

7
ответ дан Cheeso 24 November 2019 в 18:53
поделиться

Также не сериализуются свойства, возвращающие значение null!

5
ответ дан 24 November 2019 в 18:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: