XmlAttributeOverrides.Add Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Lägger till ett XmlAttributes objekt i samlingen med XmlAttributes objekt.
Överlagringar
| Name | Description |
|---|---|
| Add(Type, XmlAttributes) |
Lägger till ett XmlAttributes objekt i samlingen med XmlAttributes objekt. Parametern |
| Add(Type, String, XmlAttributes) |
Lägger till ett XmlAttributes objekt i samlingen med XmlAttributes objekt. Parametern |
Add(Type, XmlAttributes)
- Källa:
- XmlAttributeOverrides.cs
- Källa:
- XmlAttributeOverrides.cs
- Källa:
- XmlAttributeOverrides.cs
- Källa:
- XmlAttributeOverrides.cs
- Källa:
- XmlAttributeOverrides.cs
Lägger till ett XmlAttributes objekt i samlingen med XmlAttributes objekt. Parametern type anger ett objekt som ska åsidosättas av objektet XmlAttributes .
public:
void Add(Type ^ type, System::Xml::Serialization::XmlAttributes ^ attributes);
public void Add(Type type, System.Xml.Serialization.XmlAttributes attributes);
member this.Add : Type * System.Xml.Serialization.XmlAttributes -> unit
Public Sub Add (type As Type, attributes As XmlAttributes)
Parametrar
- attributes
- XmlAttributes
Ett XmlAttributes objekt som representerar de övergripande attributen.
Exempel
I följande exempel serialiseras en klass med namnet Band, som härleds från en klass med namnet Orchestra. Exemplet skapar ett XmlRootAttribute objekt och tilldelar det till XmlRoot egenskapen för ett XmlAttributes objekt. Exemplet anropar Add sedan metoden för att lägga XmlAttributes till objektet i XmlAttributeOverrides objektet.
using System;
using System.IO;
using System.Xml.Serialization;
/* This is the class that will be overridden. The XmlIncludeAttribute
tells the XmlSerializer that the overriding type exists. */
[XmlInclude(typeof(Band))]
public class Orchestra
{
public Instrument[] Instruments;
}
// This is the overriding class.
public class Band:Orchestra
{
public string BandName;
}
public class Instrument
{
public string Name;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("Override.xml");
test.DeserializeObject("Override.xml");
}
public void SerializeObject(string filename)
{
/* Each object that is being overridden requires
an XmlAttributes object. */
XmlAttributes attrs = new XmlAttributes();
// An XmlRootAttribute allows overriding the Orchestra class.
XmlRootAttribute xmlRoot = new XmlRootAttribute();
// Set the object to the XmlAttribute.XmlRoot property.
attrs.XmlRoot = xmlRoot;
// Create an XmlAttributeOverrides object.
XmlAttributeOverrides attrOverrides =
new XmlAttributeOverrides();
// Add the XmlAttributes to the XmlAttributeOverrrides.
attrOverrides.Add(typeof(Orchestra), attrs);
// Create the XmlSerializer using the XmlAttributeOverrides.
XmlSerializer s =
new XmlSerializer(typeof(Orchestra), attrOverrides);
// Writing the file requires a TextWriter.
TextWriter writer = new StreamWriter(filename);
// Create the object using the derived class.
Band band = new Band();
band.BandName = "NewBand";
// Create an Instrument.
Instrument i = new Instrument();
i.Name = "Trumpet";
Instrument[] myInstruments = {i};
band.Instruments = myInstruments;
// Serialize the object.
s.Serialize(writer,band);
writer.Close();
}
public void DeserializeObject(string filename)
{
XmlAttributes attrs = new XmlAttributes();
XmlRootAttribute attr = new XmlRootAttribute();
attrs.XmlRoot = attr;
XmlAttributeOverrides attrOverrides =
new XmlAttributeOverrides();
attrOverrides.Add(typeof(Orchestra), "Instruments", attrs);
XmlSerializer s =
new XmlSerializer(typeof(Orchestra), attrOverrides);
FileStream fs = new FileStream(filename, FileMode.Open);
// Deserialize the Band object.
Band band = (Band) s.Deserialize(fs);
Console.WriteLine("Brass:");
foreach(Instrument i in band.Instruments)
{
Console.WriteLine(i.Name);
}
}
}
Option Explicit
Option Strict
Imports System.IO
Imports System.Xml.Serialization
' This is the class that will be overridden. The XmlIncludeAttribute
' tells the XmlSerializer that the overriding type exists.
<XmlInclude(GetType(Band))> _
Public Class Orchestra
Public Instruments() As Instrument
End Class
' This is the overriding class.
Public Class Band
Inherits Orchestra
Public BandName As String
End Class
Public Class Instrument
Public Name As String
End Class
Public Class Run
Public Shared Sub Main()
Dim test As New Run()
test.SerializeObject("Override.xml")
test.DeserializeObject("Override.xml")
End Sub
Public Sub SerializeObject(ByVal filename As String)
' Each object that is being overridden requires
' an XmlAttributes object.
Dim attrs As New XmlAttributes()
' An XmlRootAttribute allows overriding the Orchestra class.
Dim xmlRoot As New XmlRootAttribute()
' Set the object to the XmlAttribute.XmlRoot property.
attrs.XmlRoot = xmlRoot
' Create an XmlAttributeOverrides object.
Dim attrOverrides As New XmlAttributeOverrides()
' Add the XmlAttributes to the XmlAttributeOverrrides.
attrOverrides.Add(GetType(Orchestra), attrs)
' Create the XmlSerializer using the XmlAttributeOverrides.
Dim s As New XmlSerializer(GetType(Orchestra), attrOverrides)
' Writing the file requires a TextWriter.
Dim writer As New StreamWriter(filename)
' Create the object using the derived class.
Dim band As New Band()
band.BandName = "NewBand"
' Create an Instrument.
Dim i As New Instrument()
i.Name = "Trumpet"
Dim myInstruments() As Instrument = {i}
band.Instruments = myInstruments
' Serialize the object.
s.Serialize(writer, band)
writer.Close()
End Sub
Public Sub DeserializeObject(ByVal filename As String)
Dim attrs As New XmlAttributes()
Dim attr As New XmlRootAttribute()
attrs.XmlRoot = attr
Dim attrOverrides As New XmlAttributeOverrides()
attrOverrides.Add(GetType(Orchestra), "Instruments", attrs)
Dim s As New XmlSerializer(GetType(Orchestra), attrOverrides)
Dim fs As New FileStream(filename, FileMode.Open)
' Deserialize the Band object.
Dim band As Band = CType(s.Deserialize(fs), Band)
Console.WriteLine("Brass:")
Dim i As Instrument
For Each i In band.Instruments
Console.WriteLine(i.Name)
Next i
End Sub
End Class
Kommentarer
Objektet XmlAttributes innehåller en union av attributobjekt som gör XmlSerializer att standard serialiseringsbeteendet för en uppsättning objekt åsidosätts. Du väljer de attributobjekt som ska platsas i XmlAttributes objektet, beroende på de specifika beteenden som du vill åsidosätta. Till exempel XmlSerializer serialiserar en klassmedlem som ett XML-element som standard. Om du vill att medlemmen ska serialiseras som ett XM-attribut i stället skapar du en XmlAttributeAttribute, tilldelar den XmlAttribute till egenskapen för en XmlAttributesoch lägger till XmlAttributes objektet i XmlAttributeOverrides objektet.
Använd den här överlagringen för att åsidosätta en XmlRootAttribute eller XmlTypeAttribute.
Se även
Gäller för
Add(Type, String, XmlAttributes)
- Källa:
- XmlAttributeOverrides.cs
- Källa:
- XmlAttributeOverrides.cs
- Källa:
- XmlAttributeOverrides.cs
- Källa:
- XmlAttributeOverrides.cs
- Källa:
- XmlAttributeOverrides.cs
Lägger till ett XmlAttributes objekt i samlingen med XmlAttributes objekt. Parametern type anger ett objekt som ska åsidosättas. Parametern member anger namnet på en medlem som åsidosätts.
public:
void Add(Type ^ type, System::String ^ member, System::Xml::Serialization::XmlAttributes ^ attributes);
public void Add(Type type, string member, System.Xml.Serialization.XmlAttributes attributes);
public void Add(Type type, string member, System.Xml.Serialization.XmlAttributes? attributes);
member this.Add : Type * string * System.Xml.Serialization.XmlAttributes -> unit
Public Sub Add (type As Type, member As String, attributes As XmlAttributes)
Parametrar
- member
- String
Namnet på den medlem som ska åsidosättas.
- attributes
- XmlAttributes
Ett XmlAttributes objekt som representerar de övergripande attributen.
Exempel
I följande exempel skapas ett XmlAttributeAttribute objekt och tilldelas det till XmlAttribute egenskapen för ett XmlAttributes objekt. Exemplet lägger sedan till objektet i XmlAttributes ett XmlAttributeOverrides objekt innan du skapar en XmlSerializer.
// This is the class that will be serialized.
public class Group
{
public string GroupName;
[XmlAttribute]
public int GroupCode;
}
public class Sample
{
public XmlSerializer CreateOverrider()
{
// Create an XmlAttributeOverrides object.
XmlAttributeOverrides xOver = new XmlAttributeOverrides();
/* Create an XmlAttributeAttribute to override the base class
object's XmlAttributeAttribute object. Give the overriding object
a new attribute name ("Code"). */
XmlAttributeAttribute xAtt = new XmlAttributeAttribute();
xAtt.AttributeName = "Code";
/* Create an instance of the XmlAttributes class and set the
XmlAttribute property to the XmlAttributeAttribute object. */
XmlAttributes attrs = new XmlAttributes();
attrs.XmlAttribute = xAtt;
/* Add the XmlAttributes object to the XmlAttributeOverrides
and specify the type and member name to override. */
xOver.Add(typeof(Group), "GroupCode", attrs);
XmlSerializer xSer = new XmlSerializer(typeof(Group), xOver);
return xSer;
}
}
' This is the class that will be serialized.
Public Class Group
Public GroupName As String
<XmlAttribute()> Public GroupCode As Integer
End Class
Public Class Sample
Public Function CreateOverrider() As XmlSerializer
' Create an XmlAttributeOverrides object.
Dim xOver As New XmlAttributeOverrides()
' Create an XmlAttributeAttribute to override the base class
' object's XmlAttributeAttribute object. Give the overriding object
' a new attribute name ("Code").
Dim xAtt As New XmlAttributeAttribute()
xAtt.AttributeName = "Code"
' Create an instance of the XmlAttributes class and set the
' XmlAttribute property to the XmlAttributeAttribute object.
Dim attrs As New XmlAttributes()
attrs.XmlAttribute = xAtt
' Add the XmlAttributes object to the XmlAttributeOverrides
' and specify the type and member name to override.
xOver.Add(GetType(Group), "GroupCode", attrs)
Dim xSer As New XmlSerializer(GetType(Group), xOver)
Return xSer
End Function
End Class
Kommentarer
Objektet XmlAttributes innehåller en union av attributobjekt som gör XmlSerializer att standard serialiseringsbeteendet för en uppsättning objekt åsidosätts. Du väljer de attributobjekt som ska platsas i XmlAttributes objektet, beroende på de specifika beteenden som du vill åsidosätta. Till exempel XmlSerializer serialiserar en klassmedlem som ett XML-element som standard. Om du vill att medlemmen ska serialiseras som ett XML-attribut i stället skapar du en XmlAttributeAttribute, tilldelar den XmlAttribute till egenskapen för en XmlAttributesoch lägger till XmlAttributes objektet i XmlAttributeOverrides objektet.
Använd den här metoden när du försöker åsidosätta en XmlElementAttribute, XmlAttributeAttribute, XmlArrayAttribute, XmlArrayItemAttributeeller XmlIgnoreAttribute.