#c# #xml #serialization #xsd
#c# #xml #сериализация #xsd
Вопрос:
Я создал XSD-файл из Visual Studio и могу также сгенерировать образец XML, но моя цель — использовать этот XSD для создания XML-файла во время выполнения.
Я использовал XSD.exe сгенерировать класс из моего XSD-файла, а затем создать программу для заполнения объекта из «класса». Как я могу сериализовать объект в XML-файл?
Комментарии:
Ответ №1:
Оба этих примера оставляют поток открытым, а XmlFormatter является частью библиотек BizTalk, поэтому XmlSerializer был бы более подходящим:
using (Stream stream = File.Open(fileName, FileMode.Create))
{
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
serializer.Serialize(stream, MyObject);
stream.Flush();
}
Ответ №2:
Когда вы создали классы для сериализации и десериализации Xml-файла с помощью XSD.exe инструмент, с помощью которого вы можете записывать свои экземпляры обратно в файлы..
Stream stream = File.Open(filename, FileMode.Create);
XmlFormatter formatter = new XmlFormatter (typeof(XmlObjectToSerialize));
formatter.Serialize(stream, xmlObjectToSerialize);
stream.Flush();
Комментарии:
1. Ах, извините, да. Я выбрал двоичный форматировщик! Но XmlFormatter тоже работает! Видел ответ @KenF.
Ответ №3:
Двоичный формат является двоичным, используйте версию XML для XML:
XmlFormatter serializer = new XmlFormatter(typeof(MyObject));
serializer.Serialize(stream, object1);
Комментарии:
1. Я почти уверен, что вы имеете в виду XmlSerializer ?
2. должен быть System.Xml.Serialization. XmlSerializer вместо XmlFormatter, как указал Джастин