XmlAttributeAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, что XmlSerializer должен сериализовать член класса в виде XML-атрибута.
public ref class XmlAttributeAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue)]
public class XmlAttributeAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property | System.AttributeTargets.ReturnValue)>]
type XmlAttributeAttribute = class
inherit Attribute
Public Class XmlAttributeAttribute
Inherits Attribute
- Наследование
- Атрибуты
Примеры
В следующем примере сериализуется класс, содержащий несколько полей, к которым XmlAttributeAttribute применяется приложение.
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using System.Xml.Schema;
public class Group
{
[XmlAttribute (Namespace = "http://www.cpandl.com")]
public string GroupName;
[XmlAttribute(DataType = "base64Binary")]
public Byte [] GroupNumber;
[XmlAttribute(DataType = "date", AttributeName = "CreationDate")]
public DateTime Today;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("Attributes.xml");
}
public void SerializeObject(string filename)
{
// Create an instance of the XmlSerializer class.
XmlSerializer mySerializer =
new XmlSerializer(typeof(Group));
// 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 object properties.
myGroup.GroupName = ".NET";
Byte [] hexByte = new Byte[2]{Convert.ToByte(100),
Convert.ToByte(50)};
myGroup.GroupNumber = hexByte;
DateTime myDate = new DateTime(2001,1,10);
myGroup.Today = myDate;
// Serialize the class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup);
writer.Close();
}
}
Option Explicit
Option Strict
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Imports System.Xml.Schema
Public Class Group
<XmlAttribute(Namespace := "http://www.cpandl.com")> _
Public GroupName As String
<XmlAttribute(DataType := "base64Binary")> _
Public GroupNumber() As Byte
<XmlAttribute(DataType := "date", AttributeName := "CreationDate")> _
Public Today As DateTime
End Class
Public Class Run
Public Shared Sub Main()
Dim test As New Run()
test.SerializeObject("Attributes.xml")
End Sub
Public Sub SerializeObject(ByVal filename As String)
' Create an instance of the XmlSerializer class.
Dim mySerializer As New XmlSerializer(GetType(Group))
' 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 object properties.
myGroup.GroupName = ".NET"
Dim hexByte() As Byte = {Convert.ToByte(100), Convert.ToByte(50)}
myGroup.GroupNumber = hexByte
Dim myDate As New DateTime(2001, 1, 10)
myGroup.Today = myDate
' Serialize the class, and close the TextWriter.
mySerializer.Serialize(writer, myGroup)
writer.Close()
End Sub
End Class
Комментарии
Относится XmlAttributeAttribute к семейству атрибутов, которые управляют тем, как XmlSerializer сериализуется или десериализирует объект. Полный список аналогичных атрибутов см. в разделе Атрибуты, управляющие сериализацией XML.
При применении к общедоступному полю или свойству сообщает XmlAttributeAttributeXmlSerializer сериализации элемента в виде XML-атрибута. По умолчанию сериализует XmlSerializer общедоступные поля и свойства в виде XML-элементов.
Можно назначить XmlAttributeAttribute только открытые поля или общедоступные свойства, возвращающие значение (или массив значений), которые можно сопоставить с одним из простых типов языка определения схемы XML (XSD), включая все встроенные типы данных, производные от типа XSD anySimpleType . Возможные типы включают любые, которые можно сопоставить с простыми типами XSD, включая GuidCharперечисления и перечисления. Ознакомьтесь со свойством DataType для списка типов XSD и их сопоставлении to.NET типами данных.
Существует два специальных атрибута, которые можно задать с XmlAttributeAttribute помощью атрибутов : xml:lang (указывает язык) и xml:space (указывает, как обрабатывать пробелы). Эти атрибуты предназначены для передачи информации, которая относится только к обработке XML приложения. Примеры настройки показаны в следующем коде.
[XmlAttribute("xml:lang")]
public string Lang;
// Set this to 'default' or 'preserve'.
[XmlAttribute("space",
Namespace = "http://www.w3.org/XML/1998/namespace")]
public string Space
<XmlAttribute("xml:lang")> _
Public Lang As String
' Set this to 'default' or 'preserve'.
<XmlAttribute("space", _
Namespace:= "http://www.w3.org/XML/1998/namespace")> _
Public Space As String
Дополнительные сведения об использовании атрибутов см. в разделе "Атрибуты".
Замечание
Вы можете использовать слово XmlAttribute в коде вместо более длинного XmlAttributeAttribute.
Конструкторы
| Имя | Описание |
|---|---|
| XmlAttributeAttribute() |
Инициализирует новый экземпляр класса XmlAttributeAttribute. |
| XmlAttributeAttribute(String, Type) |
Инициализирует новый экземпляр класса XmlAttributeAttribute. |
| XmlAttributeAttribute(String) |
Инициализирует новый экземпляр XmlAttributeAttribute класса и задает имя созданного XML-атрибута. |
| XmlAttributeAttribute(Type) |
Инициализирует новый экземпляр класса XmlAttributeAttribute. |
Свойства
| Имя | Описание |
|---|---|
| AttributeName |
Возвращает или задает имя атрибута XML. |
| DataType |
Возвращает или задает тип данных XSD атрибута XML, созданного методом XmlSerializer. |
| Form |
Возвращает или задает значение, указывающее, является ли имя XML-атрибута, созданного XmlSerializer квалифицированным. |
| Namespace |
Возвращает или задает пространство имен XML атрибута XML. |
| Type |
Возвращает или задает сложный тип атрибута XML. |
| TypeId |
При реализации в производном классе получает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute) |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| GetHashCode() |
Возвращает хэш-код для этого экземпляра. (Унаследовано от Attribute) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
| Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к свойствам и методам, предоставляемым объектом. (Унаследовано от Attribute) |