Возможно ли сохранить строковую переменную и cookiecontainer в одном локальном файле?

#c# #serialization #binaryformatter

#c# #сериализация #binaryformatter

Вопрос:

Мне нужно использовать строковую переменную (параметр guid) и контейнер cookie в другом проекте, и мне нужно сохранить их локально. Я уже сохраняю контейнер cookie и использую для этого приведенный ниже код:

 public static void WriteCookiesToDisk(string file, CookieContainer cookieJar)
        {
            using (Stream stream = File.Create(file))
            {
                try
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(stream, cookieJar);
                }
                catch (Exception e)
                {
                    Console.Out.WriteLine("Cookie yazdırılıken hata oluştu: "   e.GetType());
                }
            }
        }
  

Мне нужно знать, есть ли способ сохранить параметр guid (string var.) и контейнер cookie в одном файле и получить доступ к ним в другом проекте, как если бы они были переменными.

Комментарии:

1. Если бы только вы могли каким-то образом обернуть контейнер cookie и строку в какой-то родительский объект, который содержит их оба, а затем сериализовать это….

2. @john хм … это имеет смысл, но я младший разработчик, и я не знаю, как я могу создать родительский объект, который содержит два разных типа переменных…

Ответ №1:

Создайте класс для хранения обоих:

 [Serializable]
public class Container
{
    public string MyStringValue { get; set; }
    public CookieContainer Cookies { get; set; }
}
  

Создайте экземпляр с обоими объектами в нем:

 var objectToSerialize = new Container() { MyStringValue = "hello", Cookies = cookieJar };
  

А затем сериализовать его:

 BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, objectToSerialize);