Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

XmlArrayItemAttribute.IsNullable, propriété

Obtient ou définit une valeur qui indique si le XmlSerializer doit sérialiser un membre comme balise XML vide lorsque l'attribut xsi:nil a la valeur true.

Espace de noms :  System.Xml.Serialization
Assembly :  System.Xml (dans System.Xml.dll)

public bool IsNullable { get; set; }

Valeur de propriété

Type : System.Boolean
true si XmlSerializer génère l'attribut xsi:nil ; sinon, false et aucune instance n'est générée. La valeur par défaut est true.

La spécification de schéma XML pour les structures permet à un document XML de signaler de manière explicite que le contenu d'un élément est manquant. Un tel élément contient l'attribut xsi:nil avec la valeur true. Pour plus d'informations, consultez la spécification intitulée « XML Schema Part 1: Structures » du World Wide Consortium (www.w3.org).

Si la propriété IsNullable a la valeur true, l'attribut xsi:nil est généré pour les membres de la classe dont la valeur est null. Par exemple, si vous affectez à un champ nommé MyStringArray la valeur null, XmlSerializer génère le code XML suivant.

 <MyStringArray xsi:nil = "true" />

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

RemarqueRemarque

Il n'est pas possible d'appliquer la propriété IsNullable à un membre de type valeur car ce type ne peut pas contenir de valeur null.

L'exemple suivant sérialise une classe nommée Group qui comporte un champ nommé Employees qui retourne un tableau d'objets Employee. Une seconde classe nommée Manager dérive de Employee. XmlArrayItemAttribute spécifie que XmlSerializer peut insérer des objets Employee et Manager dans le tableau. L'exemple définit la propriété IsNullable, indiquant ainsi à XmlSerializer de ne pas générer les objets d'attribut xsi:nil du tableau dont la valeur est 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();

   }
}



.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

Afficher:
© 2014 Microsoft