Freigeben über


XmlArrayItemAttribute.IsNullable Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob XmlSerializer einen Member als leeres XML-Tag, bei dem das xsi:nil-Attribut auf true festgelegt ist, serialisieren muss, oder legt diesen fest.

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

Boolean

true, wenn XmlSerializer das xsi:nil-Attribut generiert, andernfalls false, und es wird keine Instanz generiert. Der Standardwert ist true.

Beispiele

Im folgenden Beispiel wird eine Klasse mit dem Namen Group", die ein Feld mit dem Namen Employees "Array von Employee Objekten" enthält, serialisiert. Eine zweite Klasse namens Manager abgeleitet von Employee. Ein XmlArrayItemAttribute Gibt an, dass die XmlSerializer Objekte sowohl als Manager auch Employee Objekte in das Array einfügen können. Im Beispiel wird die IsNullable Eigenschaft festgelegt. Dadurch wird mitgeteilt, dass XmlSerializer die xsi:nil Attributobjekte im Arraysatz nicht generiert werden nullsollen.

#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

Hinweise

Die XML-Schemaspezifikation für Strukturen ermöglicht es einem XML-Dokument explizit zu 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-Schemateil 1: Strukturen.

Wenn die IsNullable Eigenschaft lautet true, wird das xsi:nil Attribut für Klassenelemente generiert, auf die festgelegt nullwurden. Wenn Sie z. B. ein Feld mit dem Namen MyStringArray nullfestlegen, 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.

Gilt für