XmlAttributes.XmlAttribute Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállít egy objektumot, amely meghatározza, hogyan XmlSerializer szerializál egy nyilvános mezőt vagy egy nyilvános olvasási/írási tulajdonságot XML-attribútumként.
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
Tulajdonság értéke
Egy XmlAttributeAttribute nyilvános mező vagy olvasási/írási tulajdonság XML-attribútumként való szerializálását szabályozza.
Példák
Az alábbi példa szerializál egy osztályt Group , amely egy nevesített GroupNametulajdonságot tartalmaz; a GroupName tulajdonság szerializálva van XML-attribútumként. A példa létrehoz egy XmlAttributeOverrides és egy XmlAttributes objektumot a mező alapértelmezett szerializálásának felülbírálásához. A példa ezután létrehoz egy olyan XmlAttributeAttribute objektumot, amely kifejezetten felülbírálja a tulajdonságot, és az objektum XmlAttributeXmlAttributes a megadott felülbírált tag nevével lesz hozzáadva az XmlAttributeOverrides objektumhoz. Végül létrehoz egy objektumot XmlSerializer , és visszaadja az XmlAttributeOverrides objektumot.
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
Megjegyzések
Ha a rendszer alapértelmezés szerint nem alkalmaz attribútumot egy nyilvános mezőre vagy nyilvános olvasási/írási tulajdonságra, akkor az XML-elemként van szerializálva. Azt is utasíthatja, XmlSerializer hogy hozzon létre EGY XML-attribútumot egy mezőre vagy tulajdonságra alkalmazva XmlAttributeAttribute .
A XmlAttribute tulajdonság lehetővé teszi az alapértelmezett szerializálás felülbírálását, valamint a tagra való alkalmazás XmlAttributeAttribute által szabályozott szerializálást. Ehhez hozzon létre és XmlAttributeAttribute állítsa be a tulajdonságait (például AttributeName). Rendelje hozzá az új objektumot XmlAttribute egy XmlAttributes objektum tulajdonságához. Adja hozzá az XmlAttributes objektumot egy XmlAttributeOverrides objektumhoz, és adja meg a mezőt vagy tulajdonságot tartalmazó objektum típusát, valamint a mező vagy tulajdonság nevét. Végül hozzon létre egy XmlSerializer objektumot, XmlAttributeOverrides és hívja meg a metódust SerializeDeserialize .