#c_sharp
При записи объекта в xml получаю следующее(см. скрин). Как сделать так чтобы запись, которая следует после тега report и до тега eeprom не было. И как еще добавить в начало файла следующее
Ответы
Ответ 1
Попробуйте так: XmlSerializer s = new XmlSerializer(objectToSerialize.GetType()); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("",""); s.Serialize(xmlWriter, objectToSerialize, ns); enSOОтвет 2
Для задания настроек сериализации используется класс XmlWriterSetting, который имеет параметры OmitXmlDeclaration - возвращает или задает значение, определяющее, следует ли опустить XML-объявление. Encoding - Возвращает или задает тип используемой кодировки текста. Тогда ваш код будет иметь следующий вид XmlSerializer formatter = new XmlSerializer(typeof(Report)); // объект, который сериализуем Report obj = new Report(); // опускаем все определения пространств имен XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("",""); //получаем поток, куда будем записывать сериализованный объект using (FileStream fs = new FileStream(pathXmlFileWrite, FileMode.OpenOrCreate)) { XmlWriter writer = XmlWriter.Create(fs, new XmlWriterSettings() { OmitXmlDeclaration = false, Indent = true, Encoding = Encoding.GetEncoding("ISO-8859-1") }); formatter.Serialize(writer, obj, ns); } В настройках сериализации мы явно указали не удалять XmlDeclaration и установили кодировку Latin1(ISO8859-1) через свойство Encoding.
Комментариев нет:
Отправить комментарий