XmlArrayAttribute.ElementName Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает имя XML-элемента, присвоенное сериализованному массиву.
public:
property System::String ^ ElementName { System::String ^ get(); void set(System::String ^ value); };
public string ElementName { get; set; }
member this.ElementName : string with get, set
Public Property ElementName As String
Значение свойства
Имя XML-элемента сериализованного массива. По умолчанию используется имя члена, которому назначается XmlArrayAttribute.
Примеры
В следующем примере выполняется сериализация экземпляра Library
класса, содержащего свойство с именем Books
, которое возвращает массив Book
элементов. В примере используется ElementName свойство, указывающее, что массив XML-элементов должен называться My_Books
, а не Books
.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization;
public ref class Book
{
public:
String^ Title;
String^ Author;
String^ ISBN;
};
public ref class Library
{
private:
array<Book^>^books;
public:
[XmlArray(ElementName="My_Books")]
property array<Book^>^ Books
{
array<Book^>^ get()
{
return books;
}
void set( array<Book^>^value )
{
books = value;
}
}
};
int main()
{
String^ filename = "ArrayExample.xml";
XmlSerializer^ mySerializer = gcnew XmlSerializer( Library::typeid );
TextWriter^ t = gcnew StreamWriter( filename );
XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces;
ns->Add( "bk", "http://wwww.contoso.com" );
Book^ b1 = gcnew Book;
b1->Title = "MyBook Title";
b1->Author = "An Author";
b1->ISBN = "00000000";
Book^ b2 = gcnew Book;
b2->Title = "Another Title";
b2->Author = "Another Author";
b2->ISBN = "0000000";
Library^ myLibrary = gcnew Library;
array<Book^>^myBooks = {b1,b2};
myLibrary->Books = myBooks;
mySerializer->Serialize( t, myLibrary, ns );
t->Close();
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
public class Library
{
private Book[] books;
[XmlArray(ElementName="My_Books")]
public Book[] Books
{
get{return books;}
set{books = value;}
}
}
public class Book
{
public string Title;
public string Author;
public string ISBN;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.WriteBook("ArrayExample.xml");
}
public void WriteBook(string filename)
{
XmlSerializer mySerializer = new XmlSerializer(typeof(Library));
TextWriter t = new StreamWriter(filename);
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("bk", "http://wwww.contoso.com");
Book b1 = new Book();
b1.Title = "MyBook Title";
b1.Author = "An Author";
b1.ISBN = "00000000";
Book b2 = new Book();
b2.Title = "Another Title";
b2.Author = "Another Author";
b2.ISBN = "0000000";
Library myLibrary = new Library();
Book[] myBooks = {b1,b2};
myLibrary.Books = myBooks;
mySerializer.Serialize(t,myLibrary,ns);
t.Close();
}
}
Option Explicit
Option Strict
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Public Class Library
Private myBooks() As Book
<XmlArray(ElementName := "My_Books")> _
Public Property Books() As Book()
Get
Return myBooks
End Get
Set
myBooks = value
End Set
End Property
End Class
Public Class Book
Public Title As String
Public Author As String
Public ISBN As String
End Class
Public Class Run
Public Shared Sub Main()
Dim test As New Run()
test.WriteBook("ArrayExample.xml")
End Sub
Public Sub WriteBook(ByVal filename As String)
Dim mySerializer As New XmlSerializer(GetType(Library))
Dim t As New StreamWriter(filename)
Dim ns As New XmlSerializerNamespaces()
ns.Add("bk", "http://wwww.contoso.com")
Dim b1 As New Book()
b1.Title = "MyBook Title"
b1.Author = "An Author"
b1.ISBN = "00000000"
Dim b2 As New Book()
b2.Title = "Another Title"
b2.Author = "Another Author"
b2.ISBN = "0000000"
Dim myLibrary As New Library()
Dim myBooks() As Book = {b1, b2}
myLibrary.Books = myBooks
mySerializer.Serialize(t, myLibrary, ns)
t.Close()
End Sub
End Class
Комментарии
Укажите, ElementName когда нужно, чтобы имя созданного XML-элемента отличалось от идентификатора элемента.
Для одного и того же ElementName значения можно задать несколько элементов, если созданный XML-документ использует пространства имен XML для различения идентичных именованных элементов. Дополнительные сведения об использовании пространств имен и создании имен с префиксом в XML-документе см. в статье XmlSerializerNamespaces.