IXmlSerializable.ReadXml(XmlReader) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает объект на основе его XML-представления.
public:
void ReadXml(System::Xml::XmlReader ^ reader);
public void ReadXml (System.Xml.XmlReader reader);
abstract member ReadXml : System.Xml.XmlReader -> unit
Public Sub ReadXml (reader As XmlReader)
Параметры
Примеры
В следующем примере показана ReadXml реализация метода .
virtual void ReadXml( XmlReader^ reader )
{
personName = reader->ReadString();
}
public void ReadXml (XmlReader reader)
{
personName = reader.ReadString();
}
В следующем примере показано использование класса для десериализации XmlSerializer этого объекта.
#using <System.Xml.dll>
#using <System.dll>
#using <Person.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
int main()
{
XmlSerializer^ serializer = gcnew XmlSerializer( Person::typeid );
FileStream^ file = gcnew FileStream( "test.xml",FileMode::Open );
Person^ aPerson = dynamic_cast<Person^>(serializer->Deserialize( file ));
Console::WriteLine( aPerson );
}
using System;
using System.IO;
using System.Xml.Serialization;
public class Reader {
public static void Main() {
XmlSerializer serializer = new XmlSerializer(typeof(Person));
FileStream file = new FileStream("test.xml", FileMode.Open);
Person aPerson = (Person) serializer.Deserialize(file);
Console.WriteLine(aPerson);
}
}
Комментарии
Метод ReadXml должен воссоздать объект, используя сведения, записанные методом WriteXml .
При вызове этого метода средство чтения размещается на начальном теге, который заключает в оболочку сведения для вашего типа. То есть непосредственно в теге start, который указывает начало сериализованного объекта. При возврате этого метода он должен прочитать весь элемент от начала до конца, включая все его содержимое. WriteXml В отличие от метода , платформа не обрабатывает элемент-оболочку автоматически. Это необходимо сделать в вашей реализации. Несоблюдение этих правил позиционирования может привести к тому, что код создаст непредвиденные исключения среды выполнения или повреждает данные.
При реализации этого метода следует учитывать возможность того, что злоумышленник может предоставить правильно сформированное, но недопустимое XML-представление, чтобы отключить или иным образом изменить поведение приложения.