Partager via


XmlArrayItemAttribute.IsNullable Propriété

Définition

Obtient ou définit une valeur qui indique si le XmlSerializer membre doit sérialiser un membre en tant que balise XML vide avec l’attribut xsi:nil défini sur true.

public:
 property bool IsNullable { bool get(); void set(bool value); };
public bool IsNullable { get; set; }
member this.IsNullable : bool with get, set
Public Property IsNullable As Boolean

Valeur de propriété

true si l’attribut XmlSerializerxsi:nil génère ; sinon, falseet aucune instance n’est générée. La valeur par défaut est true.

Exemples

L’exemple suivant sérialise une classe nommée Group, qui contient un champ nommé Employees qui retourne un tableau d’objets Employee . Une deuxième classe nommée Manager dérive de Employee. Spécifie XmlArrayItemAttribute que l’objet XmlSerializer peut insérer des objets et Manager des objets Employee dans le tableau. L’exemple définit la IsNullable propriété, ce qui indique à ne XmlSerializer pas générer les xsi:nil objets d’attribut dans le tableau défini sur null.

using System;
using System.IO;
using System.Xml.Serialization;

public class Group
{
   [XmlArray(IsNullable = true)]
   [XmlArrayItem(typeof(Manager), IsNullable = false),
   XmlArrayItem(typeof(Employee), IsNullable = false)]
   public Employee[] Employees;
}

public class Employee
{
   public string Name;
}

public class Manager:Employee
{
   public int Level;
}

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

   public void SerializeObject(string filename)
   {
      XmlSerializer s = new XmlSerializer(typeof(Group));

      // To write the file, a TextWriter is required.
      TextWriter writer = new StreamWriter(filename);

      // Creates the object to serialize.
      Group group = new Group();

      // Creates a null Manager object.
      Manager mgr = null;

      // Creates a null Employee object.
      Employee y = null;

      group.Employees = new Employee[2] {mgr, y};

      // Serializes the object and closes the TextWriter.
      s.Serialize(writer, group);
      writer.Close();
   }
}
Option Explicit
Option Strict

Imports System.IO
Imports System.Xml.Serialization


Public Class Group
    <XmlArray(IsNullable := True), _
     XmlArrayItem(GetType(Manager), IsNullable := False), _
     XmlArrayItem(GetType(Employee), IsNullable := False)> _
    Public Employees() As Employee
End Class

Public Class Employee
    Public Name As String
End Class

Public Class Manager
    Inherits Employee
    Public Level As Integer
End Class


Public Class Run
    
    Public Shared Sub Main()
        Dim test As New Run()
        test.SerializeObject("TypeDoc.xml")
    End Sub    
    
    Public Sub SerializeObject(filename As String)
        Dim s As New XmlSerializer(GetType(Group))
        
        ' To write the file, a TextWriter is required.
        Dim writer As New StreamWriter(filename)
        
        ' Creates the object to serialize.
        Dim group As New Group()
        
        ' Creates a null Manager object.
        Dim mgr As Manager = Nothing
        
        ' Creates a null Employee object.
        Dim y As Employee = Nothing
        
        group.Employees = New Employee() {mgr, y}
        
        ' Serializes the object and closes the TextWriter.
        s.Serialize(writer, group)
        writer.Close()
    End Sub
End Class

Remarques

La spécification de schéma XML pour les structures permet à un document XML de signaler explicitement que le contenu d’un élément est manquant. Un tel élément contient l’attribut xsi:nil défini sur true. Pour plus d’informations, consultez la spécification World Wide Web Consortium intitulée XML Schema Part 1 : Structures.

Si la propriété est true, l’attribut IsNullablexsi:nil est généré pour les membres de classe qui ont été définis nullsur . Par exemple, si vous définissez un champ nommé MyStringArraynullsur , le XmlSerializer code XML suivant est généré.

<MyStringArray xsi:nil = "true" />

Si la IsNullable propriété est false, aucun élément XML n’est généré.

Note

Vous ne pouvez pas appliquer la IsNullable propriété à un membre typé en tant que type valeur, car un type valeur ne peut pas contenir null.

S’applique à