Я вижу повсеместно belief (статья 2009 года) в Интернете, что класс Hashtable
не является сериализуемым; однако я не могу найти никакой современной документации, которая поддерживает это понятие.Являются ли Hashtables Serializable?
Убеждение связано с еще одним документированным убеждением в том, что интерфейс IDictionary
предотвращает сериализацию; однако я не могу найти что-либо в MSDN, который поддерживает это требование, сегодня.
Кроме того, Hashtable
реализует ISerializable
и содержит методы расширения, которые принимают информацию о сериализации.
Итак, в чем заключена сделка? Есть Hashtable
сериализуемый? Где документация, поддерживающая это понятие, окружающее IDictionary
?
Далее Разъяснение (пожалуйста, прочитайте):
утверждения, что IDictionary
не сериализуемая поддерживаются большим количеством документации; однако это основное внимание уделяется использованию взаимодействий сериализации на основе XML с классом. ISerializable
, как указано в комментариях ниже, а также через MSDN указывает, что класс сериализуем. Это также означает, что класс должен отвечать за собственную сериализацию.
Я думаю, что это отрицает утверждение, что Hashtable не является сериализуемым. Это, пожалуй, генезис моего вопроса.
Существует не один к одному соответствию между «идеями, которые люди» и «вещи, которые документированы.» –
@RobertHarvey уверен. Это правда. Но сказать, что что-то явно не сериализуемо, должно поддерживаться документацией, особенно если это что-то расширяет 'ISerializable'. Это кажется особенно сложным заявлением для поддержки использования таких библиотек, как NewtonSoft. – Thomas
Он находится на [этой странице] (https://msdn.microsoft.com/en-us/library/ms950721.aspx): * «XmlSerializer не может обрабатывать классы, реализующие интерфейс IDictionary. Это было частично связано с ограничениями по расписанию и частично из-за того, что хэш-таблица не имеет аналога в системе типа XSD. Единственное решение - реализовать пользовательскую хеш-таблицу, которая не реализует интерфейс IDictionary ». * (Google - отличный инструмент). –