XmlArrayItemAttribute Constructors

Definition

Initializes a new instance of the XmlArrayItemAttribute class.

Overloads

XmlArrayItemAttribute()

Initializes a new instance of the XmlArrayItemAttribute class.

XmlArrayItemAttribute(String)

Initializes a new instance of the XmlArrayItemAttribute class and specifies the name of the XML element generated in the XML document.

XmlArrayItemAttribute(Type)

Initializes a new instance of the XmlArrayItemAttribute class and specifies the Type that can be inserted into the serialized array.

XmlArrayItemAttribute(String, Type)

Initializes a new instance of the XmlArrayItemAttribute class and specifies the name of the XML element generated in the XML document and the Type that can be inserted into the generated XML document.

XmlArrayItemAttribute()

Source:
XmlArrayItemAttribute.cs
Source:
XmlArrayItemAttribute.cs
Source:
XmlArrayItemAttribute.cs

Initializes a new instance of the XmlArrayItemAttribute class.

C#
public XmlArrayItemAttribute();

Examples

The following example serializes a class named Transportation that contains a field named MyVehicles that returns an array of Vehicle objects. The example applies the XmlArrayItemAttribute to the field, allowing the XmlSerializer to insert instances of the Car class, which is derived from the Vehicle class, into the array.

C#
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class Vehicle
{
   public string id;
}
public class Car:Vehicle
{
   public string Maker;
}

public class Transportation
{
   [XmlArrayItem(),
   XmlArrayItem(typeof(Car), ElementName = "Automobile")]
   public Vehicle[] MyVehicles;
}

public class Run
{
   public static void Main()
   {
      Run test = new Run();
      test.SerializeObject("XmlArrayItem1.xml");
      test.DeserializeObject("XmlArrayItem1.xml");
   }

   private void SerializeObject(string filename){
      // Creates an XmlSerializer for the Transportation class.
      XmlSerializer MySerializer = new XmlSerializer(typeof(Transportation));

      // Writing the XML file to disk requires a TextWriter.
      TextWriter myTextWriter = new StreamWriter(filename);

      // Creates the object to serialize.
      Transportation myTransportation = new Transportation();

      // Creates objects to add to the array.
      Vehicle myVehicle= new Vehicle() ;
      myVehicle.id = "A12345";

      Car myCar = new Car();
      myCar.id = "Car 34";
      myCar.Maker = "FamousCarMaker";

      myTransportation.MyVehicles =
      new Vehicle[2] {myVehicle, myCar};

      // Serializes the object, and closes the StreamWriter.
      MySerializer.Serialize(myTextWriter, myTransportation);
      myTextWriter.Close();
   }

   private void DeserializeObject(string filename)
   {
      // Creates an XmlSerializer instance.
      XmlSerializer mySerializer = new XmlSerializer(typeof(Transportation));
      FileStream myFileStream = new FileStream(filename,FileMode.Open);
      Transportation myTransportation =
      (Transportation) mySerializer.Deserialize(myFileStream);

      for(int i = 0; i < myTransportation.MyVehicles.Length;i++)
      {
         Console.WriteLine(myTransportation.MyVehicles[i].id);
      }
   }
 }

Applies to

.NET 10 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

XmlArrayItemAttribute(String)

Source:
XmlArrayItemAttribute.cs
Source:
XmlArrayItemAttribute.cs
Source:
XmlArrayItemAttribute.cs

Initializes a new instance of the XmlArrayItemAttribute class and specifies the name of the XML element generated in the XML document.

C#
public XmlArrayItemAttribute(string elementName);
C#
public XmlArrayItemAttribute(string? elementName);

Parameters

elementName
String

The name of the XML element.

Examples

The following example serializes a class named Transportation that contains a field named MyVehicles that returns an array of Vehicle objects. The example applies the XmlArrayItemAttribute to the field, allowing the XmlSerializer to insert instances of the Car class, which is derived from the Vehicle class, into the array. While applying the attribute, the example sets the ElementName property using the elementName parameter.

C#
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class Vehicle
{
   public string id;
}
public class Car:Vehicle
{
   public string Maker;
}

public class Transportation
{
   [XmlArrayItem(ElementName = "Transportation"),
   XmlArrayItem(typeof(Car), ElementName = "Automobile")]
   public Vehicle[] MyVehicles;
}

public class Run
{
   public static void Main()
   {
      Run test= new Run();
      test.SerializeObject("XmlArrayItem2.xml");
      test.DeserializeObject("XmlArrayItem2.xml");
   }

   private void SerializeObject(string filename)
   {
      // Creates an XmlSerializer for the Transportation class.
      XmlSerializer MySerializer =
      new XmlSerializer(typeof(Transportation));

      // Writing the XML file to disk requires a TextWriter.
      TextWriter myTextWriter = new StreamWriter(filename);

      Transportation myTransportation = new Transportation();

      Vehicle myVehicle= new Vehicle() ;
      myVehicle.id = "A12345";

      Car myCar = new Car();
      myCar.id = "Car 34";
      myCar.Maker = "FamousCarMaker";

      Vehicle [] myVehicles = {myVehicle, myCar};
      myTransportation.MyVehicles = myVehicles;

      // Serializes the object, and closes the StreamWriter.
      MySerializer.Serialize(myTextWriter, myTransportation);
      myTextWriter.Close();
   }

   private void DeserializeObject(string filename)
   {
      // Creates the serializer with the type to deserialize.
      XmlSerializer mySerializer =
      new XmlSerializer(typeof(Transportation));
      FileStream myFileStream = new FileStream(filename,FileMode.Open);
      Transportation myTransportation =
      (Transportation) mySerializer.Deserialize(myFileStream);

      for(int i = 0;i < myTransportation.MyVehicles.Length;i++)
      {
         Console.WriteLine(myTransportation.MyVehicles[i].id);
      }
   }
}

Remarks

This overload sets the ElementName property.

Use this overload if you want the name of the generated XML element to differ from the member's identifier.

An XML document that includes namespaces can contain more than one version of an element name. For details, see the ElementName property.

Applies to

.NET 10 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

XmlArrayItemAttribute(Type)

Source:
XmlArrayItemAttribute.cs
Source:
XmlArrayItemAttribute.cs
Source:
XmlArrayItemAttribute.cs

Initializes a new instance of the XmlArrayItemAttribute class and specifies the Type that can be inserted into the serialized array.

C#
public XmlArrayItemAttribute(Type type);
C#
public XmlArrayItemAttribute(Type? type);

Parameters

type
Type

The Type of the object to serialize.

Examples

The following example serializes a class named Transportation that contains a field named MyVehicles that returns an array of Vehicle objects. The example applies the XmlArrayItemAttribute to the field, allowing the XmlSerializer to insert instances of the Car class, which is derived from the Vehicle class, into the array. While applying the attribute, the example sets the Type property using the type parameter.

C#
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class Vehicle
{
   public string id;
}
public class Car:Vehicle
{
   public string Maker;
}

public class Transportation
{
   [XmlArrayItem(typeof(Vehicle)),
   XmlArrayItem(typeof(Car))]
   public Vehicle[] MyVehicles;
}

public class Run
{
   public static void Main()
   {
      Run test= new Run();
      test.SerializeObject("XmlArrayItem3.xml");
      test.DeserializeObject("XmlArrayItem3.xml");
   }

   private void SerializeObject(string filename)
   {
       // Creates an XmlSerializer.
      XmlSerializer MySerializer =
      new XmlSerializer(typeof(Transportation));

      // Writing the XML file to disk requires a TextWriter.
      TextWriter myTextWriter = new StreamWriter(filename);

      Transportation myTransportation = new Transportation();

      Vehicle myVehicle= new Vehicle() ;
      myVehicle.id = "A12345";

      Car myCar = new Car();
      myCar.id = "Car 34";
      myCar.Maker = "FamousCarMaker";

      Vehicle [] myVehicles = {myVehicle, myCar};
      myTransportation.MyVehicles = myVehicles;

      // Serializes the object, and closes the StreamWriter.
      MySerializer.Serialize(myTextWriter, myTransportation);
      myTextWriter.Close();
   }

   private void DeserializeObject(string filename)
   {
      // Creates the serializer with the type to deserialize.
      XmlSerializer mySerializer =
      new XmlSerializer(typeof(Transportation));
      FileStream myFileStream = new FileStream(filename,FileMode.Open);
      Transportation myTransportation =
      (Transportation) mySerializer.Deserialize(myFileStream);

      for(int i = 0;i < myTransportation.MyVehicles.Length;i++)
      {
         Console.WriteLine(myTransportation.MyVehicles[i].id);
      }
   }
}

Applies to

.NET 10 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

XmlArrayItemAttribute(String, Type)

Source:
XmlArrayItemAttribute.cs
Source:
XmlArrayItemAttribute.cs
Source:
XmlArrayItemAttribute.cs

Initializes a new instance of the XmlArrayItemAttribute class and specifies the name of the XML element generated in the XML document and the Type that can be inserted into the generated XML document.

C#
public XmlArrayItemAttribute(string elementName, Type type);
C#
public XmlArrayItemAttribute(string? elementName, Type? type);

Parameters

elementName
String

The name of the XML element.

type
Type

The Type of the object to serialize.

Examples

The following example serializes a class named Transportation that contains a field named MyVehicles that returns an array of Vehicle objects. The example applies the XmlArrayItemAttribute to the field, allowing the XmlSerializer to insert instances of the Car class, which is derived from the Vehicle class, into the array. While applying the attribute, the example sets the ElementName property using the elementName parameter, and the Type property using the type parameter.

C#
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class Vehicle
{
   public string id;
}
public class Car:Vehicle
{
   public string Maker;
}

public class Transportation
{
   [XmlArray]
   [XmlArrayItem("Transport", typeof(Vehicle)),
   XmlArrayItem("Automobile", typeof(Car))]
   public Vehicle[] MyVehicles;
}

public class Run
{
   public static void Main()
   {
      Run test= new Run();
      test.SerializeObject("XmlArrayItem4.xml");
      test.DeserializeObject("XmlArrayItem4.xml");
   }

   private void SerializeObject(string filename)
   {
       // Creates an XmlSerializer for the Transportation class.
      XmlSerializer MySerializer =
      new XmlSerializer(typeof(Transportation));

      // Writing the XML file to disk requires a TextWriter.
      TextWriter myTextWriter = new StreamWriter(filename);

      Transportation myTransportation = new Transportation();

      Vehicle myVehicle= new Vehicle() ;
      myVehicle.id = "A12345";

      Car myCar = new Car();
      myCar.id = "Car 34";
      myCar.Maker = "FamousCarMaker";

      Vehicle [] myVehicles = {myVehicle, myCar};
      myTransportation.MyVehicles = myVehicles;

      // Serializes the object, and closes the StreamWriter.
      MySerializer.Serialize(myTextWriter, myTransportation);
      myTextWriter.Close();
   }

   private void DeserializeObject(string filename)
   {
      // Creates an XmlSerializer.
      XmlSerializer mySerializer =
      new XmlSerializer(typeof(Transportation));
      FileStream myFileStream = new FileStream(filename,FileMode.Open);
      Transportation myTransportation =
      (Transportation) mySerializer.Deserialize(myFileStream);

      for(int i = 0;i < myTransportation.MyVehicles.Length;i++)
      {
         Console.WriteLine(myTransportation.MyVehicles[i].id);
      }
   }
}

Remarks

This overload sets the ElementName and the Type properties.

Use this overload if you want the name of the generated XML element to differ from the member's identifier.

An XML document that includes namespaces can contain more than one version of an element name. For details, see the ElementName property.

Applies to

.NET 10 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0