Сериализация PrinterSettings в строку или блоб для вставки в базу данных - PullRequest
0 голосов
/ 26 августа 2018

Используя приведенный ниже код, я могу сериализовать / десериализовать PrinterSettings в файл. Я хотел бы спросить, есть ли способ сериализовать его в массив строк или байтов или тому подобное вместо этого, чтобы сохранить его непосредственно в базе данных.

Спасибо!

PrinterSettings prtSettings = new PrinterSettings();
prtSettings.PrintFileName = "does not matter, unused if PrintToFile == false";

//serialise
System.Xml.Serialization.XmlSerializer xmlSerializer = new         System.Xml.Serialization.XmlSerializer(prtSettings.GetType());
using (System.IO.TextWriter txtWriter = new     StreamWriter(@"c:\temp\printerSettings.xml"))
{
    xmlSerializer.Serialize(txtWriter,prtSettings);
}

//deserialise
using (FileStream fileStream = new FileStream(@"c:\temp\printerSettings.xml", FileMode.Open))
{
    object obj = xmlSerializer.Deserialize(fileStream);
    prtSettings = (PrinterSettings)obj;
}

1 Ответ

0 голосов
/ 26 августа 2018

Вместо StreamWriter используйте StringWriter

string printerSettingText = "";
XmlSerializer xser = new XmlSerializer(typeof(PrinterSettings));
using (StringWriter sw = new StringWriter())
{
    xser.Serialize(sw, prtSettings);
    printerSettingText = sw.ToString();
}

Десериализация объекта проста, как это

string dataToDeserialize = GetYourDataFromDb();
xser = new XmlSerializer(typeof(PrinterSettings));
using (StringReader sr = new StringReader(dataToDeserialize))
{

    PrinterSettings prn = (PrinterSettings)xser.Deserialize(sr);
    Console.WriteLine(prn.PrintFileName);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...