XmlElementEventArgs.LinePosition Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
XML okuyucu bir XmlTextReaderise bilinmeyen öğenin bulunduğu satırdaki yeri alır.
public:
property int LinePosition { int get(); };
public int LinePosition { get; }
member this.LinePosition : int
Public ReadOnly Property LinePosition As Integer
Özellik Değeri
XML okuyucu bir XmlTextReaderise bilinmeyen öğenin bulunduğu satırdaki sayı; aksi takdirde -1.
Örnekler
Aşağıdaki örnek, UnknownElements.xml adlı bir dosyadan adlı Group
sınıfı seri durumdan kaldırır. sınıfında karşılık gelen üyesi olmayan dosyada bir öğe bulunduğunda, UnknownElement olay gerçekleşir. Örneği denemek için aşağıdaki XML kodunu UnknownElements.xml adlı bir dosyaya yapıştırın.
<?xml version="1.0" encoding="utf-8"?>
<Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GroupName>MyGroup</GroupName>
<GroupSize>Large</GroupSize>
<GroupNumber>444</GroupNumber>
<GroupBase>West</GroupBase>
</Group>
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
using namespace System::Xml;
using namespace System::Xml::Schema;
public ref class Group
{
public:
String^ GroupName;
};
public ref class Test
{
private:
void Serializer_UnknownElement( Object^ sender, XmlElementEventArgs^ e )
{
Console::WriteLine( "Unknown Element" );
Console::Write( "\t {0}", e->Element->Name );
Console::WriteLine( " {0}", e->Element->InnerXml );
Console::WriteLine( "\t LineNumber: {0}", e->LineNumber );
Console::WriteLine( "\t LinePosition: {0}", e->LinePosition );
Group^ x = dynamic_cast<Group^>(e->ObjectBeingDeserialized);
Console::WriteLine( x->GroupName );
Console::WriteLine( sender );
}
public:
void DeserializeObject( String^ filename )
{
XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid );
// Add a delegate to handle unknown element events.
ser->UnknownElement += gcnew XmlElementEventHandler( this, &Test::Serializer_UnknownElement );
// A FileStream is needed to read the XML document.
FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
Group^ g = dynamic_cast<Group^>(ser->Deserialize( fs ));
fs->Close();
}
};
int main()
{
Test^ t = gcnew Test;
// Deserialize the file containing unknown elements.
t->DeserializeObject( "UnknownElements.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Xml.Schema;
public class Group{
public string GroupName;
}
public class Test{
static void Main(){
Test t = new Test();
// Deserialize the file containing unknown elements.
t.DeserializeObject("UnknownElements.xml");
}
private void Serializer_UnknownElement(object sender, XmlElementEventArgs e){
Console.WriteLine("Unknown Element");
Console.WriteLine("\t" + e.Element.Name + " " + e.Element.InnerXml);
Console.WriteLine("\t LineNumber: " + e.LineNumber);
Console.WriteLine("\t LinePosition: " + e.LinePosition);
Group x = (Group) e.ObjectBeingDeserialized;
Console.WriteLine (x.GroupName);
Console.WriteLine (sender.ToString());
}
private void DeserializeObject(string filename){
XmlSerializer ser = new XmlSerializer(typeof(Group));
// Add a delegate to handle unknown element events.
ser.UnknownElement+=new XmlElementEventHandler(Serializer_UnknownElement);
// A FileStream is needed to read the XML document.
FileStream fs = new FileStream(filename, FileMode.Open);
Group g = (Group) ser.Deserialize(fs);
fs.Close();
}
}
Imports System.IO
Imports System.Xml.Serialization
Imports System.Xml
Imports System.Xml.Schema
Public Class Group
Public GroupName As String
End Class
Public Class Test
Shared Sub Main()
Dim t As Test = new Test()
' Deserialize the file containing unknown elements.
t.DeserializeObject("UnknownElements.xml")
End Sub
Private Sub Serializer_UnknownElement _
(sender As Object , e As XmlElementEventArgs)
Console.WriteLine("Unknown Element")
Console.WriteLine(ControlChars.Tab & e.Element.Name + " " & e.Element.InnerXml)
Console.WriteLine(ControlChars.Tab & e.LineNumber & ":" & e.LineNumber)
Console.WriteLine(ControlChars.Tab & e.LinePosition & ":" & e.LinePosition)
Dim x As Group = CType( e.ObjectBeingDeserialized, Group)
Console.WriteLine (x.GroupName)
Console.WriteLine (sender.ToString())
End Sub
Private Sub DeserializeObject(filename As String)
Dim ser As XmlSerializer = new XmlSerializer(GetType(Group))
' Add a delegate to handle unknown element events.
AddHandler ser.UnknownElement, _
AddressOf Serializer_UnknownElement
' A FileStream is needed to read the XML document.
Dim fs As FileStream = new FileStream(filename, FileMode.Open)
Dim g As Group = CType(ser.Deserialize(fs),Group)
fs.Close()
End Sub
End Class