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.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization;
using namespace System::Xml::Schema;
public ref class Group
{
public:
[XmlAttributeAttribute(Namespace="http://www.cpandl.com")]
String^ GroupName;
[XmlAttributeAttribute(DataType="base64Binary")]
array<Byte>^GroupNumber;
[XmlAttributeAttribute(DataType="date",AttributeName="CreationDate")]
DateTime Today;
};
void SerializeObject( String^ filename )
{
// Create an instance of the XmlSerializer class.
XmlSerializer^ mySerializer = gcnew XmlSerializer( Group::typeid );
// 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 object properties.
myGroup->GroupName = ".NET";
array<Byte>^hexByte = {Convert::ToByte( 100 ),Convert::ToByte( 50 )};
myGroup->GroupNumber = hexByte;
DateTime myDate = DateTime(2001,1,10);
myGroup->Today = myDate;
// Serialize the class, and close the TextWriter.
mySerializer->Serialize( writer, myGroup );
writer->Close();
}
int main()
{
SerializeObject( "Attributes.xml" );
}
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-сериализацией.
При применении к открытому полю или свойству XmlAttributeAttribute сообщает объекту XmlSerializer о сериализации элемента в качестве XML-атрибута. По умолчанию сериализует открытые XmlSerializer поля и свойства в виде XML-элементов.
Можно назначить XmlAttributeAttribute только общедоступным полям или открытым свойствам, возвращающим значение (или массив значений), которое может быть сопоставлено с одним из простых типов языка определения схемы XML (XSD) (включая все встроенные типы данных, производные от типа XSD anySimpleType
). Возможные типы включают любые, которые можно сопоставить с простыми типами XSD, включая Guidперечисления , Charи .
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) |
Инициализация нового экземпляра класса XmlAttributeAttribute, а также указывает имя созданного XML-атрибута. |
XmlAttributeAttribute(String, Type) |
Инициализирует новый экземпляр класса XmlAttributeAttribute. |
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) |