XmlAttributeEventArgs 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
UnknownAttribute 이벤트에 대한 데이터를 제공합니다.
public ref class XmlAttributeEventArgs : EventArgs
public class XmlAttributeEventArgs : EventArgs
type XmlAttributeEventArgs = class
inherit EventArgs
Public Class XmlAttributeEventArgs
Inherits EventArgs
- 상속
예제
다음 예제에서는 UnknownAttributes.xml 라는 파일에서 라는 Group
클래스를 역직렬화합니다. 클래스 UnknownAttribute 에 해당 멤버가 없는 파일에서 요소를 찾을 때마다 이벤트가 발생합니다. 이 예제를 시도하려면 다음 XML 코드를 UnknownAttributes.xml 파일에 붙여넣습니다.
<?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" GroupType = 'Technical' GroupNumber = '42' GroupBase = 'Red'>
<GroupName>MyGroup</GroupName>
</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
{
public:
static void main()
{
Test^ t = gcnew Test;
// Deserialize the file containing unknown elements.
t->DeserializeObject( "UnknownAttributes.xml" );
}
private:
void Serializer_UnknownAttribute( Object^ sender, XmlAttributeEventArgs^ e )
{
Console::WriteLine( "Unknown Attribute" );
Console::WriteLine( "\t{0} {1}", e->Attr->Name, e->Attr->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 );
}
void DeserializeObject( String^ filename )
{
XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid );
// Add a delegate to handle unknown element events.
ser->UnknownAttribute += gcnew XmlAttributeEventHandler( this, &Test::Serializer_UnknownAttribute );
// 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::main();
}
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("UnknownAttributes.xml");
}
private void Serializer_UnknownAttribute(object sender, XmlAttributeEventArgs e){
Console.WriteLine("Unknown Attribute");
Console.WriteLine("\t" + e.Attr.Name + " " + e.Attr.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.UnknownAttribute+=new XmlAttributeEventHandler(Serializer_UnknownAttribute);
// 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("UnknownAttributes.xml")
End Sub
Private Sub Serializer_UnknownAttribute _
(sender As Object , e As XmlAttributeEventArgs)
Console.WriteLine("Unknown Attribute")
Console.WriteLine(ControlChars.Tab & e.Attr.Name + " " & e.Attr.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.UnknownAttribute, _
AddressOf Serializer_UnknownAttribute
' 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
설명
이벤트 처리에 대한 자세한 내용은 이벤트 개요를 참조하세요.
이벤트는 UnknownAttribute 메서드를 호출 Deserialize 할 때만 발생합니다.
속성
Attr |
알 수 없는 XML 특성을 나타내는 개체를 가져옵니다. |
ExpectedAttributes |
XML 문서 인스턴스에 있어야 하는 XML 특성 이름의 쉼표로 구분된 목록을 가져옵니다. |
LineNumber |
알 수 없는 XML 특성의 줄 번호를 가져옵니다. |
LinePosition |
해당 줄에서 알 수 없는 XML 특성의 위치를 가져옵니다. |
ObjectBeingDeserialized |
역직렬화되고 있는 개체를 가져옵니다. |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
적용 대상
추가 정보
.NET