C#: запись CookieContainer к диску и загрузке въезжает задним ходом для использования

Я пошел бы с Царапина , некоторые точки относительно него.

  • Это - графический язык программирования. Это не базирующийся текст (это могло бы быть положительно или отрицательно). Это действительно делает его более интуитивным и легким для детей (7 и).
  • Это является на самом деле очень объектным. Объектам, которые Вы пишете этим графическим сценариям, присоединили код к ним и могут быть снова использованы и перемещены.
  • Очень Важный : быстрые и впечатляющие результаты. Дети должны начать быстро и привести в порядок результаты, которые будут сцеплены.

я хотел бы отметить, что, хотя многие из нас начали программировать в молодом возрасте в основном или логотипе и потому что программист позже в жизни не имеет в виду, те - хорошие языки для запуска с. Я думаю, что у детей сегодня есть много более оптимальные варианты, как царапина или Alice. Основанные на тексте языки (Python, рубиновый, основной, c# или даже c), зависят от внешних библиотек и инструментов (редакторы, компиляторы), в то время как что-то как Alice или царапина - все включено и будет преподавать детям (не нацеленный на подростков) концепции программирования. Позже они могут идти дальше и развернуть свое изучение.

28
задан Maxim Zaslavsky 22 November 2009 в 07:39
поделиться

1 ответ

Я не пробовал, но у него есть атрибут Serializable, поэтому его можно [де] сериализовать с помощью двоичной сериализации .net, например, SoapFormatter.

Вот фрагмент кода, который вы просили .

var formatter = new SoapFormatter();
string file = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "cookies.dat"); 

using (Stream s = File.Create (file))
    formatter.Serialize(s, cookies);                            
...
CookieContainer retrievedCookies = null;
using (Stream s = File.OpenRead (file))
    retrievedCookies = (CookieContainer) formatter.Deserialize(s);

Если посмотреть на msdn, кажется, что SoapFormatter устарел в .net 3.5 и рекомендует использовать Binaryformatter. Раньше я считал SoapFormatter полезным, поскольку файл читается, что помогает в диагностике, когда десериализация не удалась! Эти средства форматирования чувствительны к изменениям версии даже в версии сборки (поэтому, если вы десериализуете одну версию платформы, обновите платформу, тогда она может не десериализоваться, не уверен), но есть способы обойти это с помощью свойства Binder, если это станет проблема. Я считаю, что они в первую очередь предназначены для краткосрочного сохранения / удаленного взаимодействия, но они могут быть достаточно хороши для вас здесь.

Новый DataContractSerializer не работает с ним, поэтому его нет.

Альтернативой могло бы быть создание класса CookieContainerData для [де] сериализации с помощью XmlSerializer и ручного преобразования между этим и CookieContainer.

20
ответ дан 28 November 2019 в 03:15
поделиться
Другие вопросы по тегам:

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