XmlAttributes.XmlAttribute 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
XmlSerializer가 공용 필드 또는 공용 읽기/쓰기 속성을 XML 특성으로 serialize하는 방식을 지정하는 개체를 가져오거나 설정합니다.
public:
property System::Xml::Serialization::XmlAttributeAttribute ^ XmlAttribute { System::Xml::Serialization::XmlAttributeAttribute ^ get(); void set(System::Xml::Serialization::XmlAttributeAttribute ^ value); };
public System.Xml.Serialization.XmlAttributeAttribute XmlAttribute { get; set; }
public System.Xml.Serialization.XmlAttributeAttribute? XmlAttribute { get; set; }
member this.XmlAttribute : System.Xml.Serialization.XmlAttributeAttribute with get, set
Public Property XmlAttribute As XmlAttributeAttribute
속성 값
공용 필드 또는 읽기/쓰기 속성을 XML 특성으로 serialize하는 것을 제어하는 XmlAttributeAttribute입니다.
예제
다음 예제에서는 라는 클래스를 직렬화 Group
라는 속성을 포함 하는 GroupName
, GroupName
속성이 XML 특성으로 serialize 됩니다. 이 예에서는 만듭니다는 XmlAttributeOverrides 및 XmlAttributes 필드의 기본 serialization을 재정의 하는 개체입니다. 만듭니다는 XmlAttributeAttribute 명확 하 게 재정의 된 속성 및 개체를로 XmlAttribute 속성을 XmlAttributes 개체에 추가 됩니다는 XmlAttributeOverrides 지정 된 재정의 된 멤버의 이름으로 개체. 마지막으로 XmlSerializer 생성 되 고 사용 하 여 반환 된 XmlAttributeOverrides 개체입니다.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization;
// This is the class that will be serialized.
public ref class Group
{
public:
// This is the attribute that will be overridden.
[XmlAttributeAttribute]
String^ GroupName;
int GroupNumber;
};
// Return an XmlSerializer used for overriding.
XmlSerializer^ CreateOverrider()
{
// Create the XmlAttributeOverrides and XmlAttributes objects.
XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides;
XmlAttributes^ xAttrs = gcnew XmlAttributes;
/* Create an overriding XmlAttributeAttribute set it to
the XmlAttribute property of the XmlAttributes object.*/
XmlAttributeAttribute^ xAttribute = gcnew XmlAttributeAttribute( "SplinterName" );
xAttrs->XmlAttribute = xAttribute;
// Add to the XmlAttributeOverrides. Specify the member name.
xOver->Add( Group::typeid, "GroupName", xAttrs );
// Create the XmlSerializer and return it.
return gcnew XmlSerializer( Group::typeid,xOver );
}
void SerializeObject( String^ filename )
{
// Create an instance of the XmlSerializer class.
XmlSerializer^ mySerializer = CreateOverrider();
// Writing the file requires a TextWriter.
TextWriter^ writer = gcnew StreamWriter( filename );
// Create an instance of the class that will be serialized.
Group^ myGroup = gcnew Group;
/* Set the Name property, which will be generated
as an XML attribute. */
myGroup->GroupName = ".NET";
myGroup->GroupNumber = 1;
// Serialize the class, and close the TextWriter.
mySerializer->Serialize( writer, myGroup );
writer->Close();
}
void DeserializeObject( String^ filename )
{
XmlSerializer^ mySerializer = CreateOverrider();
FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
Group^ myGroup = dynamic_cast<Group^>(mySerializer->Deserialize( fs ));
Console::WriteLine( myGroup->GroupName );
Console::WriteLine( myGroup->GroupNumber );
}
int main()
{
SerializeObject( "OverrideAttribute.xml" );
DeserializeObject( "OverrideAttribute.xml" );
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
// This is the class that will be serialized.
public class Group
{
// This is the attribute that will be overridden.
[XmlAttribute]
public string GroupName;
public int GroupNumber;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("OverrideAttribute.xml");
test.DeserializeObject("OverrideAttribute.xml");
}
// Return an XmlSerializer used for overriding.
public XmlSerializer CreateOverrider()
{
// Create the XmlAttributeOverrides and XmlAttributes objects.
XmlAttributeOverrides xOver = new XmlAttributeOverrides();
XmlAttributes xAttrs = new XmlAttributes();
/* Create an overriding XmlAttributeAttribute set it to
the XmlAttribute property of the XmlAttributes object.*/
XmlAttributeAttribute xAttribute = new XmlAttributeAttribute("SplinterName");
xAttrs.XmlAttribute = xAttribute;
// Add to the XmlAttributeOverrides. Specify the member name.
xOver.Add(typeof(Group), "GroupName", xAttrs);
// Create the XmlSerializer and return it.
return new XmlSerializer(typeof(Group), xOver);
}
public void SerializeObject(string filename)
{
// Create an instance of the XmlSerializer class.
XmlSerializer mySerializer = CreateOverrider();
// Writing the file requires a TextWriter.
TextWriter writer = new StreamWriter(filename);
// Create an instance of the class that will be serialized.
Group myGroup = new Group();
/* Set the Name property, which will be generated
as an XML attribute. */
myGroup.GroupName = ".NET";
myGroup.GroupNumber = 1;
// Serialize the class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup);
writer.Close();
}
public void DeserializeObject(string filename)
{
XmlSerializer mySerializer = CreateOverrider();
FileStream fs = new FileStream(filename, FileMode.Open);
Group myGroup = (Group)
mySerializer.Deserialize(fs);
Console.WriteLine(myGroup.GroupName);
Console.WriteLine(myGroup.GroupNumber);
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
' This is the class that will be serialized.
Public Class Group
' This is the attribute that will be overridden.
<XmlAttribute()> Public GroupName As String
Public GroupNumber As Integer
End Class
Public Class Run
Public Shared Sub Main()
Dim test As New Run()
test.SerializeObject("OverrideAttribute.xml")
test.DeserializeObject("OverrideAttribute.xml")
End Sub
' Return an XmlSerializer used for overriding.
Public Function CreateOverrider() As XmlSerializer
' Create the XmlAttributeOverrides and XmlAttributes objects.
Dim xOver As New XmlAttributeOverrides()
Dim xAttrs As New XmlAttributes()
' Create an overriding XmlAttributeAttribute set it to
' the XmlAttribute property of the XmlAttributes object.
Dim xAttribute As New XmlAttributeAttribute("SplinterName")
xAttrs.XmlAttribute = xAttribute
' Add to the XmlAttributeOverrides. Specify the member name.
xOver.Add(GetType(Group), "GroupName", xAttrs)
' Create the XmlSerializer and return it.
Return New XmlSerializer(GetType(Group), xOver)
End Function 'CreateOverrider
Public Sub SerializeObject(ByVal filename As String)
' Create an instance of the XmlSerializer class.
Dim mySerializer As XmlSerializer = CreateOverrider()
' Writing the file requires a TextWriter.
Dim writer As New StreamWriter(filename)
' Create an instance of the class that will be serialized.
Dim myGroup As New Group()
' Set the Name property, which will be generated
' as an XML attribute.
myGroup.GroupName = ".NET"
myGroup.GroupNumber = 1
' Serialize the class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup)
writer.Close()
End Sub
Public Sub DeserializeObject(ByVal filename As String)
Dim mySerializer As XmlSerializer = CreateOverrider()
Dim fs As New FileStream(filename, FileMode.Open)
Dim myGroup As Group = CType(mySerializer.Deserialize(fs), Group)
Console.WriteLine(myGroup.GroupName)
Console.WriteLine(myGroup.GroupNumber)
End Sub
End Class
설명
기본적으로 공용 필드 또는 공용 읽기/쓰기 속성에 특성이 적용 된 경우 XML 요소로 serialize 됩니다. 지시할 수도 있습니다는 XmlSerializer XML 특성을 적용 하 여 생성 하는 XmlAttributeAttribute 필드 또는 속성에 합니다.
합니다 XmlAttribute 속성을 사용 하면 제어를 적용 하 여 serialization 뿐만 아니라 기본 serialization을 재정의 하는 XmlAttributeAttribute 멤버입니다. 이 작업을 수행 하려면 만듭니다는 XmlAttributeAttribute 속성을 설정 (같은 AttributeName). 새 개체를 할당 합니다 XmlAttribute 의 속성을 XmlAttributes 개체입니다. 추가 합니다 XmlAttributes 개체는 XmlAttributeOverrides 개체 및 필드 또는 속성을 포함 하는 개체의 형식 및 필드 또는 속성의 이름을 지정 합니다. 마지막으로, 만들기를 XmlSerializer 를 사용 하 여는 XmlAttributeOverrides 개체를 호출 합니다 Serialize 또는 Deserialize 메서드.