Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
XmlSerializerA használatával több XML-streamet is létrehozhat ugyanazzal az osztálykészlettel. Érdemes lehet ezt megtenni, mert két különböző XML-webszolgáltatás ugyanazokat az alapvető információkat igényli, csak kis eltéréseket. Képzeljen el például két XML-webszolgáltatást, amelyek a könyvek megrendeléseit dolgozzák fel, és így mindkettőhöz ISBN-számokat kell megadni. Az egyik szolgáltatás a címkét <ISBN> , a második pedig a címkét <BookID>használja. Van egy osztály neve Book , amely egy nevű ISBNmezőt tartalmaz. Ha az Book osztály egy példánya szerializálva van, alapértelmezés szerint a tagnevet (ISBN) fogja használni címkeelem-névként. Az első XML-webszolgáltatás esetében ez a várt módon történik. Ha azonban az XML-adatfolyamot a második XML-webszolgáltatásnak szeretné elküldeni, felül kell bírálnia a szerializálást, hogy a címke elemneve legyen BookID.
XML-adatfolyam létrehozása alternatív elemnévvel
Hozzon létre egy példányt a XmlElementAttribute osztályból.
Állítsa be a ElementName mezőt a XmlElementAttribute-ben "BookID" értékre.
Készítsen egy példányt a XmlAttributes osztályból.
Az XmlAttributesXmlElements tulajdonságán keresztül elért gyűjteményhez adja hozzá az
XmlElementAttributeobjektumot.Hozzon létre egy példányt az XmlAttributeOverrides osztályból.
Adja hozzá a
XmlAttributesa XmlAttributeOverrides-hez, átadva a felülírni kívánt objektum típusát és a felülbírálandó tag nevét.Hozzon létre egy
XmlSerializerosztály példányt aXmlAttributeOverridessegítségével.Hozzon létre egy példányt az
Bookosztályból, és végezze el annak szerializálását vagy deszerializálását.
Example
Public Function SerializeOverride()
' Creates an XmlElementAttribute with the alternate name.
Dim myElementAttribute As XmlElementAttribute = _
New XmlElementAttribute()
myElementAttribute.ElementName = "BookID"
Dim myAttributes As XmlAttributes = New XmlAttributes()
myAttributes.XmlElements.Add(myElementAttribute)
Dim myOverrides As XmlAttributeOverrides = New XmlAttributeOverrides()
myOverrides.Add(typeof(Book), "ISBN", myAttributes)
Dim mySerializer As XmlSerializer = _
New XmlSerializer(GetType(Book), myOverrides)
Dim b As Book = New Book()
b.ISBN = "123456789"
' Creates a StreamWriter to write the XML stream to.
Dim writer As StreamWriter = New StreamWriter("Book.xml")
mySerializer.Serialize(writer, b);
End Class
public void SerializeOverride()
{
// Creates an XmlElementAttribute with the alternate name.
XmlElementAttribute myElementAttribute = new XmlElementAttribute();
myElementAttribute.ElementName = "BookID";
XmlAttributes myAttributes = new XmlAttributes();
myAttributes.XmlElements.Add(myElementAttribute);
XmlAttributeOverrides myOverrides = new XmlAttributeOverrides();
myOverrides.Add(typeof(Book), "ISBN", myAttributes);
XmlSerializer mySerializer =
new XmlSerializer(typeof(Book), myOverrides);
Book b = new Book();
b.ISBN = "123456789";
// Creates a StreamWriter to write the XML stream to.
StreamWriter writer = new StreamWriter("Book.xml");
mySerializer.Serialize(writer, b);
}
Az XML-adatfolyam a következőhöz hasonló lehet.
<Book>
<BookID>123456789</BookID>
</Book>