XmlArrayItemAttribute.IsNullable Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das XmlSerializer Element als leeres XML-Tag serialisieren muss, auf das das xsi:nil Attribut festgelegt ist 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
Eigenschaftswert
true wenn das XmlSerializerxsi:nil Attribut generiert wird; falseandernfalls wird keine Instanz generiert. Der Standardwert lautet true.
Beispiele
Im folgenden Beispiel wird eine Klasse mit dem Namen Groupserialisiert, die ein Feld mit dem Namen Employees enthält, das ein Array von Employee Objekten zurückgibt. Eine zweite Klasse namens Manager abgeleitet von Employee. Ein XmlArrayItemAttribute Specifies that the XmlSerializer can insert both Employee and Manager objects into the array. Im Beispiel wird die IsNullable Eigenschaft festgelegt, wodurch angegeben wird, dass die xsi:nilXmlSerializer Attributobjekte im Arraysatz nullnicht generiert werden.
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
Hinweise
Mit der XML-Schemaspezifikation für Strukturen kann ein XML-Dokument explizit signalisieren, dass der Inhalt eines Elements fehlt. Ein solches Element enthält das Attribut xsi:nil , auf das truefestgelegt ist. Weitere Informationen finden Sie in der Spezifikation des World Wide Web Consortium mit dem Titel "XML Schema Part 1: Structures".
Wenn die IsNullable Eigenschaft lautet true, wird das xsi:nil Attribut für Klassenmmber generiert, die auf null. Wenn Sie beispielsweise ein Feld mit dem Namen MyStringArraynullfestlegen, generiert der XmlSerializer folgende XML-Code.
<MyStringArray xsi:nil = "true" />
Wenn die IsNullable Eigenschaft lautet false, wird kein XML-Element generiert.
Hinweis
Sie können die Eigenschaft nicht auf ein Element anwenden, das IsNullable als Werttyp eingegeben wurde, da ein Werttyp nicht enthalten nullkann.