XmlElementAttribute Sınıf
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.
XmlSerializer içeren nesneyi seri hale getirdiğinde veya seri durumdan çıkardığında bir ortak alan veya özelliğin xml öğesini temsil ettiğini gösterir.
public ref class XmlElementAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=true)]
public class XmlElementAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue, AllowMultiple=true)>]
type XmlElementAttribute = class
inherit Attribute
Public Class XmlElementAttribute
Inherits Attribute
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki örnek, adlı Group bir sınıfı serileştirir ve birkaç üyesine uygular XmlElementAttribute . adlı Employees alan bir nesne dizisi Employee döndürür. Bu durumda, XmlElementAttribute sonuçta elde edilen XML'nin iç içe yerleştirilmeyeceğini belirtir (bu, bir dizideki öğelerin varsayılan davranışıdır).
using System;
using System.Collections;
using System.IO;
using System.Xml.Serialization;
public class Group
{
/* Set the element name and namespace of the XML element.
By applying an XmlElementAttribute to an array, you instruct
the XmlSerializer to serialize the array as a series of XML
elements, instead of a nested set of elements. */
[XmlElement(
ElementName = "Members",
Namespace = "http://www.cpandl.com")]
public Employee[] Employees;
[XmlElement(DataType = "double",
ElementName = "Building")]
public double GroupID;
[XmlElement(DataType = "hexBinary")]
public byte [] HexBytes;
[XmlElement(DataType = "boolean")]
public bool IsActive;
[XmlElement(Type = typeof(Manager))]
public Employee Manager;
[XmlElement(typeof(int),
ElementName = "ObjectNumber"),
XmlElement(typeof(string),
ElementName = "ObjectString")]
public ArrayList ExtraInfo;
}
public class Employee
{
public string Name;
}
public class Manager:Employee{
public int Level;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("FirstDoc.xml");
test.DeserializeObject("FirstDoc.xml");
}
public void SerializeObject(string filename)
{
// Create the XmlSerializer.
XmlSerializer s = new XmlSerializer(typeof(Group));
// To write the file, a TextWriter is required.
TextWriter writer = new StreamWriter(filename);
/* Create an instance of the group to serialize, and set
its properties. */
Group group = new Group();
group.GroupID = 10.089f;
group.IsActive = false;
group.HexBytes = new byte[1]{Convert.ToByte(100)};
Employee x = new Employee();
Employee y = new Employee();
x.Name = "Jack";
y.Name = "Jill";
group.Employees = new Employee[2]{x,y};
Manager mgr = new Manager();
mgr.Name = "Sara";
mgr.Level = 4;
group.Manager = mgr;
/* Add a number and a string to the
ArrayList returned by the ExtraInfo property. */
group.ExtraInfo = new ArrayList();
group.ExtraInfo.Add(42);
group.ExtraInfo.Add("Answer");
// Serialize the object, and close the TextWriter.
s.Serialize(writer, group);
writer.Close();
}
public void DeserializeObject(string filename)
{
FileStream fs = new FileStream(filename, FileMode.Open);
XmlSerializer x = new XmlSerializer(typeof(Group));
Group g = (Group) x.Deserialize(fs);
Console.WriteLine(g.Manager.Name);
Console.WriteLine(g.GroupID);
Console.WriteLine(g.HexBytes[0]);
foreach(Employee e in g.Employees)
{
Console.WriteLine(e.Name);
}
}
}
Imports System.Collections
Imports System.IO
Imports System.Xml.Serialization
Public Class Group
' Set the element name and namespace of the XML element.
<XmlElement(ElementName := "Members", _
Namespace := "http://www.cpandl.com")> _
Public Employees() As Employee
<XmlElement(DataType := "double", _
ElementName := "Building")> _
Public GroupID As Double
<XmlElement(DataType := "hexBinary")> _
Public HexBytes() As Byte
<XmlElement(DataType := "boolean")> _
Public IsActive As Boolean
<XmlElement(GetType(Manager))> _
Public Manager As Employee
<XmlElement(GetType(Integer), _
ElementName := "ObjectNumber"), _
XmlElement(GetType(String), _
ElementName := "ObjectString")> _
Public ExtraInfo As ArrayList
End Class
Public Class Employee
Public Name As String
End Class
Public Class Manager
Inherits Employee
Public Level As Integer
End Class
Public Class Run
Public Shared Sub Main()
Dim test As New Run()
test.SerializeObject("FirstDoc.xml")
test.DeserializeObject("FirstDoc.xml")
End Sub
Public Sub SerializeObject(filename As String)
' Create the XmlSerializer.
Dim s As New XmlSerializer(GetType(Group))
' To write the file, a TextWriter is required.
Dim writer As New StreamWriter(filename)
' Create an instance of the group to serialize, and set
' its properties.
Dim group As New Group()
group.GroupID = 10.089f
group.IsActive = False
group.HexBytes = New Byte() {Convert.ToByte(100)}
Dim x As New Employee()
Dim y As New Employee()
x.Name = "Jack"
y.Name = "Jill"
group.Employees = New Employee() {x, y}
Dim mgr As New Manager()
mgr.Name = "Sara"
mgr.Level = 4
group.Manager = mgr
' Add a number and a string to the
' ArrayList returned by the ExtraInfo property.
group.ExtraInfo = New ArrayList()
group.ExtraInfo.Add(42)
group.ExtraInfo.Add("Answer")
' Serialize the object, and close the TextWriter.
s.Serialize(writer, group)
writer.Close()
End Sub
Public Sub DeserializeObject(filename As String)
Dim fs As New FileStream(filename, FileMode.Open)
Dim x As New XmlSerializer(GetType(Group))
Dim g As Group = CType(x.Deserialize(fs), Group)
Console.WriteLine(g.Manager.Name)
Console.WriteLine(g.GroupID)
Console.WriteLine(g.HexBytes(0))
Dim e As Employee
For Each e In g.Employees
Console.WriteLine(e.Name)
Next e
End Sub
End Class
Açıklamalar
, XmlElementAttribute bir nesnenin seri hale nasıl getirildiğini veya seri durumdan XmlSerializer çıkarıldığını denetleen bir öznitelik ailesine aittir. Benzer özniteliklerin tam listesi için bkz. XML Serileştirmesini Denetleen Öznitelikler.
XML belgesi genellikle her biri üç bölümden oluşan XML öğeleri içerir: olası özniteliklere sahip bir açma etiketi, bir kapanış etiketi ve etiketler arasındaki veriler. XML etiketleri iç içe yerleştirilebilir; diğer bir ifadeyle, etiketler arasındaki veriler XML öğeleri de olabilir. Bir öğenin başka bir öğeyi kapsayan bu kapasitesi, belgenin veri hiyerarşileri içermesine olanak tanır. XML öğesi öznitelikleri de içerebilir.
XmlElementAttribute Öğe adı ve ad alanı gibi XML öğelerinin özelliklerini denetlemek için ortak alanlara veya genel okuma/yazma özelliklerine uygulayın.
bir XmlElementAttribute nesne dizisi döndüren bir alana birden çok kez uygulanabilir. Bunun amacı, diziye eklenebilen Type farklı türleri belirtmektir (özelliği aracılığıyla). Örneğin, aşağıdaki C# kodundaki dizi hem dizeleri hem de tamsayıları kabul eder.
public class Things{
[XmlElement(Type = typeof(string)),
XmlElement(Type = typeof(int))]
public object[] StringsAndInts;
}
Bu, aşağıdakine benzer xml ile sonuçlanabilir.
<Things>
<string>Hello</string>
<int>999</int>
<string>World</string>
</Things>
Bir özellik değeri belirtmeden ElementName birden çok kez uyguladığınızda XmlElementAttribute öğelerin kabul edilebilir nesnelerin türünden sonra adlandırıldığını unutmayın.
öğesini XmlElementAttribute bir dizi döndüren bir alana veya özelliğe uygularsanız, dizideki öğeler xml öğelerinin dizisi olarak kodlanır.
Buna karşılık, böyle bir alana veya özelliğe uygulanmazsa XmlElementAttribute , dizideki öğeler, alan veya özelliğin adını taşıyan bir öğenin altında iç içe yerleştirilmiş bir öğe dizisi olarak kodlanır. (Dizinin nasıl serileştirilmeye devam etmek için ve XmlArrayItemAttribute özniteliklerini kullanınXmlArrayAttribute.)
özelliğini, özgün alanın veya özelliğin türünden türetilmiş bir tür (yani, uygulamasını uyguladığınız XmlElementAttributealan veya özellik) belirtecek şekilde ayarlayabilirsinizType.
Bir alan veya özellik bir ArrayListdöndürürse, öğesinin XmlElementAttribute birden çok örneğini üyeye uygulayabilirsiniz. Her örnek için özelliğini diziye eklenebilen bir nesne türüne ayarlayın Type .
Öznitelikleri kullanma hakkında daha fazla bilgi için bkz . Öznitelikler.
Uyarı
uzun yerine XmlElementAttributekodunuzda sözcüğünü XmlElement kullanabilirsiniz.
Oluşturucular
| Name | Description |
|---|---|
| XmlElementAttribute() |
XmlElementAttribute sınıfının yeni bir örneğini başlatır. |
| XmlElementAttribute(String, Type) |
öğesinin XmlElementAttribute yeni bir örneğini başlatır ve XML öğesinin adını ve uygulandığı üye XmlElementAttribute için türetilmiş bir türü belirtir. Bu üye türü, onu içeren nesneyi seri hale getirdiğinde XmlSerializer kullanılır. |
| XmlElementAttribute(String) |
Sınıfının yeni bir örneğini XmlElementAttribute başlatır ve XML öğesinin adını belirtir. |
| XmlElementAttribute(Type) |
Sınıfının yeni bir örneğini XmlElementAttribute başlatır ve öğesinin uygulandığı üye XmlElementAttribute için bir tür belirtir. Bu tür, onu içeren nesne seri hale getirilirken veya seri durumdan çıkarılırken tarafından XmlSerializer kullanılır. |
Özellikler
| Name | Description |
|---|---|
| DataType |
tarafından XmlSerializeroluşturulan XML öğesinin XML Şema tanımı (XSD) veri türünü alır veya ayarlar. |
| ElementName |
Oluşturulan XML öğesinin adını alır veya ayarlar. |
| Form |
Öğesinin nitelenmiş olup olmadığını gösteren bir değer alır veya ayarlar. |
| IsNullable |
özniteliği olarak ayarlanmış boş bir etiket |
| Namespace |
Sınıf serileştirildiğinde sonuç veren XML öğesine atanan ad alanını alır veya ayarlar. |
| Order |
Öğelerin seri hale getirildiği veya seri durumdan çıkarıldığı açık sırayı alır veya ayarlar. |
| Type |
XML öğesini temsil etmek için kullanılan nesne türünü alır veya ayarlar. |
| TypeId |
Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır. (Devralındığı yer: Attribute) |
Yöntemler
| Name | Description |
|---|---|
| Equals(Object) |
Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür. (Devralındığı yer: Attribute) |
| GetHashCode() |
Bu örneğin karma kodunu döndürür. (Devralındığı yer: Attribute) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| IsDefaultAttribute() |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir. (Devralındığı yer: Attribute) |
| Match(Object) |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür. (Devralındığı yer: Attribute) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler. (Devralındığı yer: Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır. (Devralındığı yer: Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1). (Devralındığı yer: Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bir nesne tarafından kullanıma sunulan özelliklere ve yöntemlere erişim sağlar. (Devralındığı yer: Attribute) |
Şunlara uygulanır
Ayrıca bkz.
- XmlArrayAttribute
- XmlAttributeOverrides
- XmlAttributes
- XmlElementAttributes
- XmlElements
- XmlRootAttribute
- XmlSerializer
- XML Serileştirmeye Giriş
- Nasıl yapılır: XML Akışı için Alternatif Öğe Adı Belirtme
- Öznitelikleri Kullanarak XML Serileştirmesini Denetleme
- XML Serileştirme Örnekleri
- XML Şema Tanımı Aracı (XSD.exe)