Почему XmlSerializer не нужно, чтобы тип был помечен как [Serializable]?

Использовать обратный вызов, но скрывать li с помощью CSS display: none; fadeIn должен работать после этого.

$(document).ready(function(){
    setInterval(function(){
         $('.live-stream ul').each(function(){
                $(this).load('tx.php', function(){
                         $(this).find('li').fadeIn();
                            });
                 });
        }, 1000);

    });
16
задан John Saunders 25 July 2009 в 18:48
поделиться

3 ответа

Это вызвано тем, что XmlSerializer только сериализирует общедоступные поля/свойства. Другие формы сериализации могут сериализировать частные данные, которые составляют потенциальную угрозу безопасности, таким образом, необходимо "подписаться" на использование атрибута.

17
ответ дан Eric Rosenberger 25 July 2009 в 18:48
поделиться

Прямо сейчас существует действительно 3 формы сериализации в.Net Платформе.

  1. XmlSerialization - работами по умолчанию над общедоступными полями и свойствами. Может все еще управляться через XmlElementAttribute, XmlAttributeAttribute, и т.д.
  2. BinarySerialization - Управляемый SerializationAttribute. Глубоко интегрированный в CLR
  3. WCF Seralization - DataContractAttribute, и т.д.

, к сожалению, существует стандартный полный шаблон для сериализации. Все 3 платформы имеют различные требования и причуды.

3
ответ дан JaredPar 25 July 2009 в 18:48
поделиться

Безопасность не является единственной проблемой; просто, сериализация только имеет смысл для определенных классов. Например, это делает мало snse для сериализации "соединения". Соединение строка , уверенный, но само соединение? nah. Аналогично, что-либо, что требует неуправляемого указателя/дескриптора, не собирается сериализировать очень хорошо. Ни делегаты.

Кроме того, XmlSerializer и DataContractSerializer (по умолчанию) дерево сериализаторы, не график сериализаторы - таким образом, любые рекурсивные ссылки (как Parent) заставят его повреждаться.

отмечание класса с предпочтительным маркером сериализатора является просто способом сказать, "и это должно иметь смысл".

IIRC, и [XmlSerializer и [DataContractSerializer] использовал , чтобы быть очень тверд о требовательных вещах как [Serializable], [DataContract] или [IXmlSerializable], но они стали немного более либеральными в последнее время.

8
ответ дан Marc Gravell 25 July 2009 в 18:48
поделиться
Другие вопросы по тегам:

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