XmlArrayItemAttribute.IsNullable Egenskap

Definition

Hämtar eller anger ett värde som anger om XmlSerializer måste serialisera en medlem som en tom XML-tagg med xsi:nil attributet inställt på 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

Egenskapsvärde

true XmlSerializer om genererar xsi:nil attributet, annars false, och ingen instans genereras. Standardvärdet är true.

Exempel

I följande exempel serialiseras en klass med namnet Group, som innehåller ett fält med namnet Employees som returnerar en matris med Employee objekt. En andra klass med namnet Manager härleds från Employee. En XmlArrayItemAttribute anger att XmlSerializer kan infoga både Employee och Manager objekt i matrisen. Exemplet anger IsNullable egenskapen och talar därmed om XmlSerializer för att inte generera attributobjekten xsi:nil i matrisen som är inställda på 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

Kommentarer

Med XML-schemaspecifikationen för strukturer kan ett XML-dokument uttryckligen signalera att ett elements innehåll saknas. Ett sådant element innehåller attributet xsi:nil inställt på true. Mer information finns i World Wide Web Consortium-specifikationen med titeln XML-schema del 1: Strukturer.

Om egenskapen IsNullable är truexsi:nil genereras attributet för klassmedlemmar som har angetts till null. Om du till exempel anger ett fält med namnet MyStringArray till nullXmlSerializer genererar följande XML-kod.

<MyStringArray xsi:nil = "true" />

Om egenskapen IsNullable är falsegenereras inget XML-element.

Note

Du kan inte tillämpa egenskapen på IsNullable en medlem som har angetts som en värdetyp eftersom en värdetyp inte kan innehålla null.

Gäller för