#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);