XmlArrayItemAttribute.IsNullable Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
.
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 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
.
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 les objets et Manager
les XmlSerializer objets peuvent être insérés Employee
dans le tableau. L’exemple définit la IsNullable propriété, indiquant ainsi à ne XmlSerializer pas générer les xsi:nil
objets d’attribut dans le tableau défini null
sur .
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
public ref class Employee
{
public:
String^ Name;
};
public ref class Manager: public Employee
{
public:
int Level;
};
public ref class Group
{
public:
[XmlArray(IsNullable=true)]
[XmlArrayItem(Manager::typeid,IsNullable=false),
XmlArrayItem(Employee::typeid,IsNullable=false)]
array<Employee^>^Employees;
};
void SerializeObject( String^ filename )
{
XmlSerializer^ s = gcnew XmlSerializer( Group::typeid );
// To write the file, a TextWriter is required.
TextWriter^ writer = gcnew StreamWriter( filename );
// Creates the object to serialize.
Group^ group = gcnew Group;
// Creates a null Manager object.
Manager^ mgr = nullptr;
// Creates a null Employee object.
Employee^ y = nullptr;
array<Employee^>^temp = {mgr,y};
group->Employees = temp;
// Serializes the object and closes the TextWriter.
s->Serialize( writer, group );
writer->Close();
}
int main()
{
SerializeObject( "TypeDoc.xml" );
}
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 true
sur . 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 IsNullable xsi:nil
est généré pour les membres de classe qui ont été définis null
sur . Par exemple, si vous définissez un champ nommé MyStringArray
null
sur , 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é.
Notes
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
.