• Сохранения и чтения cookie, из текстового файла в xNet?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Использовать базу данных :-)

    Можно попробовать сериализовать CookieDictionary, но Dictionary видимо намекает, что это будет непросто. Если не получится, то можно попробовать сделать свой, сериализуемый, CookieDictionary и использовать его.

    С JSON наверное проблем будет меньше, по крайней мере обычный Dictionary с помощью Newtonsoft.Json можно без проблем сериализовать/десериализовать.

    Можно попробовать с CookieDictionary, примерно так:

    // получаем json:
    string json = JsonConvert.SerializeObject(cookieDictionary);
    
    // получаем экземпляр CookieDictionary из json:
    var cookieDictionary2 = JsonConvert.DeserializeObject<CookieDictionary>(json);

    Если с сериализацией будут проблемы и при преобразовании экземпляра CookieDictionary в строку на выходе всегда получается строка вида: ключ=значение; ключ=значение, то можно разбить эту строку и получить коллекцию:

    // string cookiesRaw = File.ReadAllText(string.Format("Cookies_{0}.txt", textBox1.Text));
    string cookiesRaw = "ключ1=значение1; ключ2=значение2";
    var cookies = cookiesRaw.Split(';').Select(itm => itm.Split('=')).
                  ToDictionary(k => k[0].Trim(), v => v[1].Trim());

    В переменной cookies будет экземпляр Dictionary, который можно попробовать преобразовать в CookieDictionary (зависит от реализации), либо создать и наполнить экземпляр CookieDictionary.

    httpRequest.Cookies = new CookieDictionary();
    
    foreach(var item in cookies)
    {
      httpRequest.Cookies.Add(item.Key, item.Value);
    }
    Ответ написан
    2 комментария