XmlArrayItemAttribute.IsNullable Tulajdonság

Definíció

Lekéri vagy beállít egy értéket, amely jelzi, hogy a XmlSerializer tagnak üres XML-címkeként kell-e szerializálnia egy tagot, és az attribútum értéke a xsi:nil következő 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

Tulajdonság értéke

true ha a XmlSerializer rendszer létrehozza az xsi:nil attribútumot; falseellenkező esetben, és nem jön létre példány. Az alapértelmezett érték a true.

Példák

Az alábbi példa szerializál egy osztálytGroup, amely egy objektumtömböt Employees visszaadó mezőt Employee tartalmaz. A második osztály neve Manager a következőből Employeeszármazik: . Az a XmlArrayItemAttribute beállítás, hogy a XmlSerializer tömbbe beszúrhatók mind a két objektum, mind EmployeeManager az objektumok. A példa beállítja a IsNullable tulajdonságot, így azt XmlSerializer mondja, hogy ne hozza létre a xsi:nil tömbhalmaz nullattribútumobjektumait.

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

Megjegyzések

A struktúrák XML-sémaspecifikációja lehetővé teszi, hogy egy XML-dokumentum explicit módon jelezhesse, hogy egy elem tartalma hiányzik. Az ilyen elem a következő attribútumot xsi:niltruetartalmazza: . További információkért lásd a World Wide Web Consortium XML-séma 1. rész: Struktúrák című specifikációját.

Ha a IsNullable tulajdonság az true, akkor az attribútum azoknak az xsi:nil osztálytagoknak lesz létrehozva, amelyek a következőre nulllettek beállítva: . Ha például egy névvel ellátott MyStringArraynullmezőt állít be, a XmlSerializer következő XML-kódot hozza létre.

<MyStringArray xsi:nil = "true" />

Ha a IsNullable tulajdonság az false, a rendszer nem hoz létre XML-elemet.

Note

A tulajdonság nem alkalmazható értéktípusként IsNullable beírt tagra, mert egy értéktípus nem tartalmazhat null.

A következőre érvényes: