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